Интересная МАТЧА ПРОТИВ вопроса: не искать несколько слов

У меня есть такая таблица:

|====brand=====|======title================|
|....Apple.....|...iPhone 5 32 GB..........|
|....Sony......|...Bluetooth Headset.......|

И я использую ПОЛНЫЙ ТЕКСТ ПОИСК в основном так:

SELECT
  *,
  MATCH(brand,title) AGAINST ('some words') as score
FROM
  table

Поэтому, когда я искал гарнитуру, MySQL дал оценку 1,812121 по-настоящему.

Но когда я искал iphone; MySQL дает 0 баллов.

Ps: ft_min_word_len = 2

1 ответ

Решение

От http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

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

Так что немного о распространенных словах звучит правдоподобно.

Другие вопросы по тегам