Полнотекстовый запрос в BOOLEAN MODE не выполняется со словами длиной менее 3 символов - PullRequest
0 голосов
/ 22 января 2019

У меня есть таблица MyISAM с индексом FULLTEXT, но поисковые запросы в булевом режиме с ключевыми словами, содержащими менее 3 символов, завершаются неудачно.

Работа:

SELECT col FROM `table` WHERE MATCH(col) AGAINST('+am7 +gm7' IN BOOLEAN MODE)

Но это не так:

SELECT col FROM `table` WHERE MATCH(col) AGAINST('+am +gm' IN BOOLEAN MODE)

Возвращает "am" ИЛИ"гм", но мне нужны оба слова: "ам" И"гм".

Если я запускаю show variables like 'ft_min%', он показывает 1, поэтому настройка ft_min_word_len прошла успешно. Также я перестроил (и отремонтировал таблицу, на всякий случай) индекс FULLTEXT после перезагрузки сервера. Но этот запрос по-прежнему не удается.

Редактировать: Это проблема, связанная со стоп-словами, применяются настройки по умолчанию, мой пользовательский список пропущен. Вот что я настроил:

ft_min_word_len=1
innodb_ft_min_token_size=1
innodb_ft_enable_stopword=1
innodb_ft_server_stopword_table=my_table/_ft_stopwords
innodb_ft_user_stopword_table=my_table/_ft_stopwords

Есть идеи, почему БД не использует мой список? Или что я мог сделать? Спасибо!

...