ft_min_word_len = 3 MySQL. Настраиваем минимальное количество символов для полнотекстового поиска

Люба х...ня

Ситуация. Поиск по сайту не ищет товар 02п, но он там есть, - говорит клиент. Сели мы с програмером Максимом, тестим. После 30 мин тестов, поняли, что механизм поиска написан правильно (использует 7 различных условий, напр: транслитерация текста и др.). И тут я вспомнил. По умолчанию в настройках mysql сервера, в индекс (FULLTEXT) попадают слова, размером >=4 символов. ...ОПА, подумал Макс. Так мы имеем собственные сервера, ...ОПУ мы отложим на другой день.

Решение:

Открываем конфиг, (у меня он лежит в /etc/mysql/my.cnf), и добавляем следующие строки:

 [mysqld] 
 ft_min_word_len=3 
 [myisamchk] 
 ft_min_word_len=3

Далее, для того чтобы изменения вступили в силу, нужно перезапустить mysql /etc/init.d/mysql restart or service mysqld restart, в зависимости от системы.

И сбросить кэш таблицы, по которой осуществляется поиск.

REPAIR TABLE <TableName> QUICK;
FLUSH TABLE <TableName>;

Вы можете проверить ваши изменения, набрав следующее в mysql

SHOW VARIABLES LIKE 'ft_min_word_len'

Успехов! Если понравилась статья, не забываем ставить лайки.

Расскажите нам о своем проекте!