1let $restart_parameters = restart: --ngram_token_size=$ngram_token_size; 2-- source include/restart_mysqld.inc 3 4SELECT @@ngram_token_size; 5 6# New row inserted should be tokenized correctly by new ngram_token_size 7INSERT INTO articles (title, body) VALUES 8 ('数据库管理系统','计算机是处理大量数据的理想工具'); 9 10-- echo # Some results are incorrect due to ngram_token_size mismatch 11 12SELECT * FROM articles WHERE 13 MATCH(title, body) AGAINST('数' IN BOOLEAN MODE); 14 15SELECT * FROM articles WHERE 16 MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE); 17 18SELECT * FROM articles WHERE 19 MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE); 20 21SELECT * FROM articles WHERE 22 MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE); 23 24SELECT * FROM articles WHERE 25 MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE); 26 27DROP INDEX ft_index ON articles; 28 29DELETE FROM articles WHERE title = '数据库管理系统'; 30 31CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram; 32 33-- echo # Results are correct after rebuilding the index 34 35SELECT * FROM articles WHERE 36 MATCH(title, body) AGAINST('数' IN BOOLEAN MODE); 37 38SELECT * FROM articles WHERE 39 MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE); 40 41SELECT * FROM articles WHERE 42 MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE); 43 44SELECT * FROM articles WHERE 45 MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE); 46 47SELECT * FROM articles WHERE 48 MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE); 49