0

我对在 MySQL 中执行全文搜索很感兴趣,但我特别感兴趣的词往往是短词,或者可能出现在停止列表中的词。例如,我可能想要搜索所有以“It is”开头的条目。

最好的方法是什么?我是否应该手动删除所有停用词并将最小字长设置为 0?还是有其他方法可以做到这一点?

非常感谢你。

4

1 回答 1

1

在 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;

所以,再一次:

  1. 编辑 my.ini 文件并保存
  2. 重新启动服务器(这不能动态完成)
  3. 更改表引擎(如果需要) ALTER TABLE tbl_name ENGINE = MyISAM;
  4. 执行修复 REPAIR TABLE tbl_name QUICK。

请注意,InnoDB 和 MyISAM 有它们的速度差异。一个读得更快,另一个写得更快(在互联网上阅读更多相关信息)

于 2013-08-02T15:00:37.533 回答