为MySQL FULLTEXT搜索设置ft_min_word_len = 2有什么可怕的吗?

时间:2009-07-30 19:36:39

标签: mysql full-text-search

为了对两个字母的短语进行FULLTEXT搜索,例如“ PR 经理”和“ MS Word”,我添加了 ft_min_word_len = 2 < / em>到MySQL配置文件(/etc/mysql/my.cnf)。

这样做有什么特别的错吗?它会降低性能吗?它会阻止扩展到大型数据集吗?

任何意见都将不胜感激。

3 个答案:

答案 0 :(得分:2)

不,它可能只会增加您的全文字典大小,但不会对搜索性能产生特别影响。

答案 1 :(得分:2)

所有双字母组合都必须编入索引,这会增加搜索索引的大小并减慢索引过程。它应该对搜索本身的速度产生很小的影响。你也可能遇到更多的单词成为停止词并变得无法搜索。鉴于FTS通常不区分大小写,“PR”和“MS”不太可能成为停止词,但“IT”很可能会出现。

答案 2 :(得分:1)

根据documentation,min_word_len只会降低您的索引大小。

仅供参考, min_infix_len 是另一回事。假设2.0.1-beta或更高版本,Sphinx正在使用dict=keywords

有两件事要知道:

  • 一旦指定min_infix_len,Sphinx将存储单词的后缀以允许中缀/后缀搜索。

  • 减少min_infix_len不会减小索引大小(与旧的 crc 索引一样)。这是因为仍然需要存储所有单词后缀。因此,min_infix_len仅减少结果,而不是索引大小。