欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

mysql repair 索引_mysql 问题记录(1) 全文索引查询问题及使用方法

发布时间:2025/3/19 24 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql repair 索引_mysql 问题记录(1) 全文索引查询问题及使用方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

问题描述:使用全文索引,查询某些单词,比如beijing,of,to,also等等。查询失败。。。

测试表结构:

测试表数据:

查询失败分析:

1."beijing"查询失败,是因为"beijing"一词结果太多,占到了整列所有单词的50%。

如果一个关键词在50%的数据出现,那么这个词会被当做无效词。如果你想去除50%的现在请使用IN BOOLEAN MODE搜索。

查询语句:select * from test01 where match(city) against ('beijing' IN BOOLEAN MODE);

2."of"查询失败,是因为全文索引搜索时,默认会忽略length<4 和 length>84的单词。使用

show variables like 'ft%'; 命令可以查看关于全文索引的参数变量。

解决办法:将ft_min_word_len 改为1。

修改后必须重建索引文件重新建立索引命令:repair table tablename quick

3."also"查询失败,也是因为全文索引的参数变量问题。ft_stopword_file会内置一些没有实际意义的词,在查询时,会忽略这些词。可将该参数设为"",则禁用单词忽略。

补充:ft_boolean_syntax属性

改变IN BOOLEAN MODE的查询字符,不用重新启动MySQL也不用重建索引

也就是说,可以用后面的这些符号,可以用来改变查询的结果

详见:MySQL使用全文索引(fulltext index)​www.cnblogs.com

补充:Windows下无法修改 ft_min_word_len的情况,

使用cmd打开 services.msc,

找到你的 MySQL服务,右键Properties,找到你的my.ini所在的路径

停止MySQL,在my.ini中增加 ft_min_word_len = 1,重启MySQL,

然后使用命令 show variables like 'ft_min_word_len'; 查看是否生效了

总结

以上是生活随笔为你收集整理的mysql repair 索引_mysql 问题记录(1) 全文索引查询问题及使用方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。