У меня есть таблица 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
Есть идеи, почему БД не использует мой список? Или что я мог сделать? Спасибо!