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'

Успіхів! Якщо сподобалась стаття, не забуваємо ставити лайки.

Розкажіть нам про свій проект!