Почему полнотекстовый поиск не возвращает короткие слова, даже если ft_min_word_len был понижен? - PullRequest
3 голосов
/ 28 сентября 2011

В моей конфигурации MySQL я установил ft_min_word_len = 2 и перестроил индекс с быстрым восстановлением.

Есть ли что-то еще, что мне нужно сделать, чтобы иметь возможность искать короткие (3 буквы)слова?


РЕДАКТИРОВАТЬ: Этот запрос

    SELECT *, match(`Tournament`.`Name`) against ('aaa') as score, `Tournament`.`id` FROM `tournie`.`tournaments` AS `Tournament` WHERE 1 = 1 GROUP BY `Tournament`.`id` having score > 0.1 ORDER BY `score` desc LIMIT 20

возвращает 0 записей, несмотря на существование записи с таким точным именем - "aaa".Я также пробовал другие, такие как "сумка" и (классическая) "задница".

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

Вы также перезапустили mysql после внесения изменений? Вам нужно перезапустить и перестроить ваши индексы. Также помните, что если то, что вы ищете, появляется в более чем 50% записей, mysql ничего не вернет. Это затрудняет тестирование с 10 записями.

0 голосов
/ 28 мая 2013

Пожалуйста, убедитесь, что вы добавили ft_min_word_len = 2 в

1 #Vi etc/my.cnf

[mysqld]

ft_min_word_len = 2

after that

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