Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > MySQL & MariaDB

Как уменьшить длину слова для fulltext поиска в MySQL/MariaDB : MySQL & MariaDB

26.01.2025 8:52


19.12.2024 15:13
Пожаловались на то, что в fulltext поиске отсутствуют трехбуквенные слова. С такой длиной есть куча предлогов, так что вообще правильно, что он по умолчанию...
SQL код:
show variables like 'ft_min%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| ft_min_word_len | 4     |
+-----------------+-------+ 
4 символа...
Как переделать:
1. идем в my.ini и меняем/добавляем параметр
Код:
[mysqld]
ft_min_word_len = 3
2. перезапускаем базу и проверяем, что значение поменялось.

поскольку новое значение распространяется только на новые индексы, старый fulltext надо пересоздать, делается это выборкой по следующему скрипту
3.
SQL код:
SELECT 
    CONCAT(
        'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, 
        ' DROP INDEX ', INDEX_NAME, 
        '; ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, 
        ' ADD FULLTEXT(', GROUP_CONCAT(COLUMN_NAME ORDER BY SEQ_IN_INDEX), ');'
    ) AS sql_command
FROM 
    INFORMATION_SCHEMA.STATISTICS
WHERE 
    INDEX_TYPE = 'FULLTEXT'
GROUP BY 
    TABLE_SCHEMA, TABLE_NAME, INDEX_NAME; 
Часовой пояс GMT +3, время: 08:52.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.