Это структура таблицы и конфигурация:
mysql> select @@ngram_token_size ;
+--------------------+
| @@ngram_token_size |
+--------------------+
| 1 |
+--------------------+
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
FULLTEXT (title) WITH PARSER ngram
) ENGINE=InnoDB CHARACTER SET utf8mb4;
и вставка данных:
INSERT INTO articles (title) VALUES("a");
INSERT INTO articles (title) VALUES("b");
INSERT INTO articles (title) VALUES("c");
поиск "b" или "c" нормальный.
mysql> select * FROM articles WHERE MATCH (title) AGAINST ('+b' IN BOOLEAN MODE) ;
+----+-------+
| id | title |
+----+-------+
| 2 | b |
+----+-------+
1 row in set (0.00 sec)
но, поиск "a" возврат пуст, почему?
mysql> select * FROM articles WHERE MATCH (title) AGAINST ('+a' IN BOOLEAN MODE) ;
Empty set (0.00 sec)