ft_min_word_len = 3 MySQL. Настраиваем минимальное количество символов для полнотекстового поиска
- 7 Мая 2014
- Volodymyr Hodiak
- Разработка
- 6126
Ситуация. Поиск по сайту не ищет товар 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'
Успехов! Если понравилась статья, не забываем ставить лайки.