Проблема с единичными словами и полнотекстовым поиском MySQL - PullRequest
0 голосов
/ 04 марта 2012

Я настроил полнотекстовый поиск для прослушивания столбцов заголовка и описания для моей таблицы статей блога в MySQL. SQL, который я использую для поиска в таблице, выглядит следующим образом:

ВЫБРАТЬ заголовок, описание, publish_date ИЗ таблицы ГДЕ СОГЛАСОВАТЬ (название, описание) ПРОТИВ («кошки», «собаки») ЗАКАЗАТЬ по publish_date DESC LIMIT 100

Это работает (для «собак» и «кошек»), но когда я использую единственное число («собака» или «кошка»), я не вижу результатов. Не уверен, почему это происходит, я пробовал разные варианты, такие как «+ собака, + кошка», и пытался также включить В БУЛЕВОМ РЕЖИМЕ ... Ничего не работает. И да, я уверен, что в столбце описания есть и другие слова, такие как «собака» и «кошка», а также их множественное число.

Как мне заставить отдельные слова работать с MySQL?

Ответы [ 2 ]

2 голосов
/ 04 марта 2012

Минимальная длина слова по умолчанию для полнотекстового поиска составляет 4 символа.

Это необходимо изменить в конфигурации сервера.См. H ere , чтобы узнать, как это сделать.

0 голосов
/ 04 марта 2012

почему бы вам не попробовать что-то вроде этого:

SELECT title,description,publish_date, MATCH(title,description) AGAINST('search') AS score  FROM table WHERE MATCH(title,description) AGAINST('seacrh') ORDER BY score LIMIT 100;

возможно, это поможет, но не будет правильно работать с одним словом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...