Проблема полнотекстовых стоп-слов MySQL - PullRequest
4 голосов
/ 15 декабря 2010

У меня есть база данных с именем «products» и индекс FULLTEXT со столбцами: title и description. Все мои продукты являются смазочными материалами (маслами), и есть два типа: индустриальные и авто-мото, со скоростью 55% -45%. Если я сделаю поиск по маслам auto-moto, то он не даст результатов, потому что ключевое слово "auto-moto" присутствует более чем в половине строк, а масла во всех них, поэтому MySQL помещает их в STOPWORDS. список.

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

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

Ответ IN BOOLEAN MODE. Если вы используете логический режим, mysql будет игнорировать присутствие ключа более чем в 50% строк. В то же время он обладает очень сильной и полезной способностью: AGAINST ('*key*').

0 голосов
/ 19 декабря 2010

Может быть потому, что auto-moto содержит символ "-", который согласно http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html выполняет поиск NOT, поэтому все строки с "auto", но НЕ "moto"

пытаются выполнить поискдля "auto moto"

также вы можете опубликовать фактический SQL, который вы используете, может помочь в диагностике проблемы

...