我对在 MySQL 中执行全文搜索很感兴趣,但我特别感兴趣的词往往是短词,或者可能出现在停止列表中的词。例如,我可能想要搜索所有以“It is”开头的条目。
最好的方法是什么?我是否应该手动删除所有停用词并将最小字长设置为 0?还是有其他方法可以做到这一点?
非常感谢你。
我对在 MySQL 中执行全文搜索很感兴趣,但我特别感兴趣的词往往是短词,或者可能出现在停止列表中的词。例如,我可能想要搜索所有以“It is”开头的条目。
最好的方法是什么?我是否应该手动删除所有停用词并将最小字长设置为 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;
所以,再一次:
请注意,InnoDB 和 MyISAM 有它们的速度差异。一个读得更快,另一个写得更快(在互联网上阅读更多相关信息)