Поиск в базе данных PHP Mysql - PullRequest
1 голос
/ 09 октября 2010

Я знаю, что в большинстве случаев люди просто делают

LIKE '%$search_query%'

, но понимают, что в моем случае кто-то может искать такие вещи, как

, что корова толстая

Теперь, вещь в моей базе данных, я не буду хранить ее точно так же, как "корова толстая", я буду хранить что-то вроде "толстой коровы", поэтому с помощью

LIKE '%$search_query%'

не будуне работает.

Может ли кто-нибудь указать мне правильное направление для эффективного поиска в моей базе данных, как я объяснил?

Спасибо

1 Ответ

4 голосов
/ 09 октября 2010

Вы ищете полнотекстовый поиск , с ограничением по умолчанию минимальная длина слова 4 по умолчанию, поэтому он не будет работать для ваших примеров.

Anпример, который ищет «дом» и «сарай» в записях, которые не содержат «овец» в логическом режиме:

SELECT * FROM table WHERE MATCH (columnname)
      AGAINST ('+house +barn -sheep' IN BOOLEAN MODE);

В качестве альтернативы, естественный язык может работать лучше для полных предложений.

Полнотекстовый поиск является довольно сложным полем, однако, со множеством предостережений и ошибок.Стоит внимательно прочитать руководство.

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