Size: a a a

2020 June 09

EG

Evgeniy Gostkov in MySQL
Всем привет! пытаюсь использовать полнотекстовые поиск и наткнулся на такой неприятный момент (или я что-то не так делаю).
Есть простая таблица.
id |    phrase         |
3  | нет |
4  |  у меня нет |
5  |  у меня нет воды |
id - AI

полнотекстовый индекс сделан по полю phrase
выполняю вот такой запрос:
SELECT * FROM db.test_tbl WHERE MATCH (phrase) AGAINST ('меня нет вод');
id |  phrase
4  | у меня нет
5  | у меня нет воды
3  | нет

Т.е. первым приоритетом выбрана строка "у меня нет", а я ожидал получить строку "у меня нет воды".
Пробуя "разные комбинации", пришел к такому выводу, что приоритет выше у записей, которые были раньше вставлены в таблицу.
Собственно вопрос, это нормальное поведение mysql (5.7)?
источник

Vs

Vladislav support.od... in MySQL
Поднотекстовый поиск лучше отдать отдельному сервису. Например,  Sphinx

Тут немного сравнения движков
http://lib.custis.ru/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%BE%D0%B2_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0
источник

ИД

Иван Дорогой... in MySQL
Ilia Zviagin
Обычно пишут, наоборот, в самом начале
WHERE 1=1

И далее каждый терм начинают с AND
вот да ) отличная мысль ) блин, а я нагородил ) осталось сделать подобное для "GROUP BY field1, field2, 1" - т.е. в конце добавить единицу - чтобы можно было спокойно к каждому полю добавлять запятую
источник

ИД

Иван Дорогой... in MySQL
Ilia Zviagin
Избегать просто, хранить условие в исключающем множестве, или в словаре ( set,map, dictionary ).

Но если ты добавишь дважды что-то в group by или условие в where дважды, ничего страшного не будет.
ну.. оно у меня было дважды.. но в том смысле, что один раз это удобные "голые" поля  visit_date, hour, а второй раз уже сформированная строка для юзера CONCAT(visit_date, ' ', LPAD(hour, 2, '0'), ':00:00') as date-hour - соотв группировать по такой строке совершенно избыточно
источник

ИД

Иван Дорогой... in MySQL
The Ant 🐜
ты как будто оверхайлоад пишешь экономя на каждом такте процессора. Проверяй, кто тебе не дает то? Не глазами же каждый запрос чекаешь.
да, на каждом такте ) в планах вообще из сводной таблицы генерить пхп файл с массивом, скармливать его опкешу, чтобы получать данные без подключения к базе ) изменилась таблица - генерим новый файл, удаляем его из опкеша
источник

IZ

Ilia Zviagin in MySQL
Evgeniy Gostkov
Всем привет! пытаюсь использовать полнотекстовые поиск и наткнулся на такой неприятный момент (или я что-то не так делаю).
Есть простая таблица.
id |    phrase         |
3  | нет |
4  |  у меня нет |
5  |  у меня нет воды |
id - AI

полнотекстовый индекс сделан по полю phrase
выполняю вот такой запрос:
SELECT * FROM db.test_tbl WHERE MATCH (phrase) AGAINST ('меня нет вод');
id |  phrase
4  | у меня нет
5  | у меня нет воды
3  | нет

Т.е. первым приоритетом выбрана строка "у меня нет", а я ожидал получить строку "у меня нет воды".
Пробуя "разные комбинации", пришел к такому выводу, что приоритет выше у записей, которые были раньше вставлены в таблицу.
Собственно вопрос, это нормальное поведение mysql (5.7)?
Запрос без order by не имеет никакого порядка
источник

EG

Evgeniy Gostkov in MySQL
Vladislav support.od.ua
Поднотекстовый поиск лучше отдать отдельному сервису. Например,  Sphinx

Тут немного сравнения движков
http://lib.custis.ru/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%BE%D0%B2_%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0
Думал сначала, но у меня данных то, кот наплакал. строк 100 от силы, вот и решил не заморачиваться.
источник

IZ

Ilia Zviagin in MySQL
Иван Дорогой
ну.. оно у меня было дважды.. но в том смысле, что один раз это удобные "голые" поля  visit_date, hour, а второй раз уже сформированная строка для юзера CONCAT(visit_date, ' ', LPAD(hour, 2, '0'), ':00:00') as date-hour - соотв группировать по такой строке совершенно избыточно
Если сгруппируешь хуже не будет
источник

IZ

Ilia Zviagin in MySQL
Evgeniy Gostkov
Думал сначала, но у меня данных то, кот наплакал. строк 100 от силы, вот и решил не заморачиваться.
Это не потому что там быстрее данные обрабатываться, а потому, что там функционал как правило на порядки лучше
источник

EG

Evgeniy Gostkov in MySQL
Ясно, гляну. Спасибо
источник

IZ

Ilia Zviagin in MySQL
Evgeniy Gostkov
Ясно, гляну. Спасибо
Полнотекст в БД мейниейнит индексы транзакционно, онлайн. И тем мало что можно скорее позволить - полнотекстовые индексы дорогие в обслуживании, там не O(log N), там гораздо хуже.

А внешние индексы оффлайн все делают, зато данные там read only.
источник

V

V in MySQL
всем привет
такой вопрос.
Как можно внести текст из textarea в поле в бд? страница на php, желательно через get сделать это
источник

DE

Denis Efremov in MySQL
V
всем привет
такой вопрос.
Как можно внести текст из textarea в поле в бд? страница на php, желательно через get сделать это
Ну с помощью запроса
источник

V

Vitaly in MySQL
V
всем привет
такой вопрос.
Как можно внести текст из textarea в поле в бд? страница на php, желательно через get сделать это
как обычно PDO и вперед.. Вам бы в группе по пыхе и спросить
источник

D

DarkPerl in MySQL
V
всем привет
такой вопрос.
Как можно внести текст из textarea в поле в бд? страница на php, желательно через get сделать это
Из браузера делается запрос к серверу, тот обращается к пхп. Внутри идет соединение с бд и сам запрос к бд.
источник

V

V in MySQL
а как его организовать? через mysqli_query с insert into?
источник

DE

Denis Efremov in MySQL
Начать надо с роута
источник

DE

Denis Efremov in MySQL
V
а как его организовать? через mysqli_query с insert into?
Как больше нравится
источник

D

DarkPerl in MySQL
V
а как его организовать? через mysqli_query с insert into?
Примеры в сети посмотрите.
Как из пхп соединиться с базой и выполнить запрос на вставку
источник

V

V in MySQL
(сильно не смейтесь, я лишь 1 семестр учусь работать со всем этим и не особо сильно в этом разбираюсь еще)
источник