Полнотекстовый поиск с помощью php - PullRequest
1 голос
/ 01 июля 2011

Я не получаю никаких результатов для следующего запроса:

"SELECT * FROM test2 WHERE MATCH(txt) AGAINST('hello' IN BOOLEAN MODE)"

, в то время как test2 выглядит так:

id | txt
 1 | ...
 2 | ...
 3 | ...
 4 | ...
.. | ...

txt имеет длину 30 символов (TEXT) и полный текстУ меня есть около 16 записей (крошечные дБ), и слово привет находится почти в каждой записи в TXT вместе с другими словами.Я просто хотел узнать, как работает полнотекстовый поиск.Так что я получаю ноль результатов и не могу понять, почему.

1 Ответ

2 голосов
/ 04 июля 2011

Есть две причины, по которым вы не получаете никаких результатов:

Причина 1. Ваше слово для поиска 'hello' встречается в слишком большом количестве строк.

Интерпретация поиска на естественном языкестрока поиска как фраза на естественном человеческом языке (фраза в свободном тексте).Там нет специальных операторов.Список стоп-слов применяется.Кроме того, слова, которые присутствуют в 50% или более строк, считаются общими и не совпадают.Полнотекстовый поиск - это поиск на естественном языке, если модификатор не указан.

Источник: http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Причина 2: слово для поиска 'hello' находится в списке стоп-слов,Любое слово в списке стоп-слов никогда не будет совпадать!

Источник: http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html

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