Длинна слова при FULLTEXT поиске. Размер ft_min_word_len ключа.

Поиск по FULLTEXT ключу превосходит по скорости обычный поиск по LIKE, но его использование ограничивается количеством символов в искомом слове. Полнотекстовые индексы поддерживаются таблицами MyISAM. Поддержка Innodb добавлена с версии 5.6.4. 

Проверить количество искомых символов у себя:

SHOW VARIABLES LIKE 'ft_min_word_len'

Задать нужное количество:

В файле конфига /etc/mysql/my.cnf (у разных ОС может отличаться)

[mysqld]
ft_min_word_len=3

Рестарт mysql (mysqld или mariadb):

sudo service mysql restart

Желательно сбросить кеш таблицы, по которой будет вестись поиск:

REPAIR TABLE table QUICK;
FLUSH table table;

Добавление ключа FULLTEXT:

ALTER TABLE `table` ADD FULLTEXT(`field`);

Теперь без труда будет работать поиск по трём и выше символам:

SELECT * FROM table
WHERE MATCH (field) AGAINST ('+Пик' IN BOOLEAN MODE);

1518 0

Комментарии

Пока нет ни одного отзыва. Оставьте отзыв первым
Только авторизованные пользователи могут оставлять комментарии Вход

Похожие статьи

Mysql база шин и дисков

База автомобильных шин и дисков. В базе присутствует: производитель, модель, год, модификация, PCD, диаметр, гайка, заводские размеры шины и диска, возможные варианты замены, тюнинг шины и диски. Грузовых автомобилей в базе нет.

Отключение sql_mode=only_full_group_by в mysql 5.7 ubuntu 18.04

Что делать если при переходе сайта на mysql 5.7 возникла ошибка SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'db.books' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by