mysql repair 索引_mysql 问题记录(1) 全文索引查询问题及使用方法
問題描述:使用全文索引,查詢某些單詞,比如beijing,of,to,also等等。查詢失敗。。。
測試表結(jié)構(gòu):
測試表數(shù)據(jù):
查詢失敗分析:
1."beijing"查詢失敗,是因為"beijing"一詞結(jié)果太多,占到了整列所有單詞的50%。
如果一個關(guān)鍵詞在50%的數(shù)據(jù)出現(xiàn),那么這個詞會被當(dāng)做無效詞。如果你想去除50%的現(xiàn)在請使用IN BOOLEAN MODE搜索。
查詢語句:select * from test01 where match(city) against ('beijing' IN BOOLEAN MODE);
2."of"查詢失敗,是因為全文索引搜索時,默認會忽略length<4 和 length>84的單詞。使用
show variables like 'ft%'; 命令可以查看關(guān)于全文索引的參數(shù)變量。
解決辦法:將ft_min_word_len 改為1。
修改后必須重建索引文件重新建立索引命令:repair table tablename quick
3."also"查詢失敗,也是因為全文索引的參數(shù)變量問題。ft_stopword_file會內(nèi)置一些沒有實際意義的詞,在查詢時,會忽略這些詞??蓪⒃搮?shù)設(shè)為"",則禁用單詞忽略。
補充:ft_boolean_syntax屬性
改變IN BOOLEAN MODE的查詢字符,不用重新啟動MySQL也不用重建索引
也就是說,可以用后面的這些符號,可以用來改變查詢的結(jié)果
詳見:MySQL使用全文索引(fulltext index)?www.cnblogs.com
補充:Windows下無法修改 ft_min_word_len的情況,
使用cmd打開 services.msc,
找到你的 MySQL服務(wù),右鍵Properties,找到你的my.ini所在的路徑
停止MySQL,在my.ini中增加 ft_min_word_len = 1,重啟MySQL,
然后使用命令 show variables like 'ft_min_word_len'; 查看是否生效了
總結(jié)
以上是生活随笔為你收集整理的mysql repair 索引_mysql 问题记录(1) 全文索引查询问题及使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 获取浏览器窗口_全面认识区块链浏览器--
- 下一篇: mysql有个数据用or语句有相同条件_