mysql MATCH ... AGAINST的最小搜索词长度

36 阅读1分钟

不管是用中文还是英文都检索不到结果……

查了一下mysql最小搜索词长度的限制

SHOW VARIABLES LIKE 'ft_min_word_len';

发现返回的结果是4

但是我一直在用长度小于4的字符串在查询,用大于4长度的字符串查询成功了

先变更一下最小搜索词的长度限制(需要在mysql文件夹下的my.ini中修改):

[mysqld]
ft_min_word_len=2
innodb_ft_min_token_size=2

然后再在services.msc中重启mysql服务,最后重建索引即可解决。

ALTER TABLE 表名 DROP INDEX 索引名;
ALTER TABLE 表名 ADD FULLTEXT INDEX(...字段名);