Как я могу сопоставить «ноутбук» и «ноутбуки», когда поиск «ноутбук» выполняется с использованием сопоставления MySQL ... с полнотекстовым поиском? - PullRequest
1 голос
/ 09 февраля 2010

Я пытаюсь встроить функцию поиска на мой сайт. Поиск является основной целью сайта, и у меня есть несколько проблем с функцией поиска MySQL.

Я бы хотел иметь возможность поиска по одной строке поиска по нескольким текстовым полям.

Я использую сопоставление MySQL ... с операторами для выполнения полнотекстового поиска. Я запускаю это в логическом режиме.

Мой SQL выглядит примерно так:

SELECT * FROM ... 
WHERE MATCH(table.field1, table.field2, table.field3) 
                           AGAINST ('laptop' IN BOOLEAN MODE)

В настоящее время это возвращает результаты, которые имеют слово laptop, но нет, если они имеют слово laptops.

Мне нужно, чтобы он возвращал результаты, содержащие слово laptop или laptops.

Ответы [ 4 ]

2 голосов
/ 09 февраля 2010

используйте подстановочный знак * в конце вашей фразы

SELECT * FRO... WHERE MATCH(table.field1, table.field2, table.field3) AGAINST ('laptop*') IN BOOLEAN MODE)
1 голос
/ 09 февраля 2010

Если вы используете MySQL 5.1, вы можете установить плагин stemmer .

1 голос
/ 09 февраля 2010

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

0 голосов
/ 29 ноября 2012

Или вы можете использовать выделенное «индексируемое» поле и предварительно определить содержание (и поисковый запрос). В проекте «Снежок» есть стеммеры для нескольких языков.

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