Полнотекстовый поиск MySQL не работает для некоторых слов, таких как «дом» - PullRequest
5 голосов
/ 06 января 2011

Я установил полнотекстовый индекс для небольшого набора записей в 3 полях (пробовал также комбинацию из 3 и имел тот же результат), и некоторые слова возвращают результаты отлично, но некоторые из них, такие как 'house 'и' australia 'этого не делают (интересно, что' australian 'и' home 'делают).

Это кажется странным поведением. Если я добавлю «С ПОЛНЫМ РАСШИРЕНИЕМ», я получу результаты, но сейчас они не самые важные.

Кто-нибудь понял, почему это так? В противном случае мне придется прибегнуть к поиску LIKE, и я бы предпочел включить релевантность.

1 Ответ

10 голосов
/ 06 января 2011

Это может быть несколько вещей:

  • В MySQL есть список «стоп-слов» по ​​умолчанию, которые не включены в полнотекстовый поиск - http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html.«house» и «australia», по-видимому, не входят в этот список, но другие слова, которые вы ищете, могут быть затронуты этим.
  • Любое слово, которое встречается в более чем 50% строк или состоит из 3 букв.или менее длиной в базе данных также считается стоп-слово.На 50% особенно легко быть пойманным, если вы просто тестируете полнотекстовый поиск в таблице с несколькими строками.

Если вы ищете в Google «mysql stop»слова "вы найдете гораздо больше об этом, потому что это одна из тех вещей, которая привлекает внимание многих людей.

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