Мы исключили возможность того, что слово «снова» является частью списка MySQL FullText Stopword. Однако по какой -то причине, когда мы используем анализатор NGRAM с настройкой по умолчанию ngram_token_size = 2 , анализатор не индексирует подстройки «Ag» , «Ga» , «AI» , «в» . В результате, поиск слова «снова» nate no совместимы, хотя в данных существует слово. Причина, по которой подстроки "Ag" , "ga" , "ai" , "в" не индексируются при ngram_token_size = 2 . Кроме того, эта проблема, по -видимому, происходит только для слова «снова» , в то время как другие слова работают, как и ожидалось. (Innodb)
минимальный воспроизводимый пример:
Код: Выделить всё
-- Create a test table
CREATE TABLE test_ft (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT,
FULLTEXT KEY ft_content (content) WITH PARSER ngram
) ENGINE=InnoDB;
-- Insert sample data
INSERT INTO test_ft (content) VALUES
('again'),
('hello again'),
('try again later'),
('simple test');
-- Try searching for the word "again"
SELECT *
FROM test_ft
WHERE MATCH(content) AGAINST('again' IN BOOLEAN MODE);
Подробнее здесь: https://stackoverflow.com/questions/797 ... xt-index-w