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) 全文索引查询问题及使用方法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 获取浏览器窗口_全面认识区块链浏览器--
- 下一篇: mysql有个数据用or语句有相同条件_