2012-11-23 18 views
0

我很喜欢在MySQL中执行全文搜索,但是我特别感兴趣的单词往往是简短单词或可能会出现的单词在停止列表中。例如,我可能想要搜索以“它是”开头的所有条目。MySQL文本索引w /不停止单词或最小单词长度

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

非常感谢。

回答

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有它们的速度差异。一个读取速度更快,其他写入更快(在互联网上阅读更多内容)