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) 全文索引查询问题及使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取浏览器窗口_全面认识区块链浏览器--
- 下一篇: python响铃符不响_python语法