由于myslq like语法性能较差,使用全文索引实现模糊搜索功能,生产上发现某些信息查询不全,或查询不到的情况,终于知道到原因了。
◆ 任何过于短的词都会被忽略。 全文搜索所能找到的词的默认最小长度为 4个字符。
◆ 停止字中的词会被忽略。禁用词就是一个像“the” 或“some” 这样过于平常而被认为是不具语义的词。存在一个内置的停止字, 但它可以通过用户自定义列表被改写。
```
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
```
1 修改mysql配置文件 /ect/my.cnf 新增参数关闭停止词功能:
innodb_ft_enable_stopword=OFF
参考资料:
#https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_ft_enable_stopword
2 重启数据库
systemctl restart mysqld
3 重置全文索引
OPTIMIZE TABLE xxxxx;