我对在MySQL中执行全文搜索很有趣,但我特别感兴趣的单词往往是简短的单词,或者可能会出现在停用列表中的单词。例如,我可能想搜索所有以"它是"开头的条目。
最好的方法是什么?我应该手动删除所有停用词并将最小单词长度设置为 0 吗?还是有其他方法可以做到这一点?
谢谢。
在my.ini文本文件(MySQL)中:
ft_stopword_file = "" or link an empty file "empty_stopwords.txt"
ft_min_word_len = 2
设置最小长度,但请注意,较短的单词 (3,2) 会大大增加查询时间,尤其是在全文索引列字段较大的情况下。
保存文件,重新启动服务器。
下一步应该是使用此查询修复索引:
REPAIR TABLE tbl_name QUICK.
但是,如果您的表使用的是 InnoDB 存储引擎,这将不起作用。您必须将其更改为MyISAM:
ALTER TABLE t1 ENGINE = MyISAM;
所以,再一次:
- 编辑我的.ini文件并保存
- 重新启动服务器(这不能动态完成)
- 更改表引擎(如果需要) 更改表tbl_name引擎 = MyISAM;
- 快速执行修复修复表tbl_name。
请注意,InnoDB和MyISAM有其速度差异。一个读得更快,另一个写得更快(在互联网上阅读更多关于它的信息)