SphinxQL - Sphinx搜索单词的一部分

时间:2015-08-02 06:38:27

标签: php sphinx

我目前的Sphinx配置只返回与整个单词匹配的结果,但我希望sphinx能够返回搜索单词的部分内容。

e.g。 如果我搜索单词 块 它应该返回结果包含所有包含单词块的单词而不仅仅是exat匹配。 例如 重磅炸弹 megablockbuster megablock

在查询

中使用的类比

我当前的SPhinxQL查询看起来像这样

SELECT id FROM disk_index1 WHERE MATCH('block') LIMIT 0,25 OPTION max_matches = 10000 

我试过回答 参考:searching in a part of word with Sphinx

  enable_star=1

但 它现在已经贬值了。 我甚至试过像这样运行查询

SELECT id FROM disk_index1 WHERE MATCH('*block*') LIMIT 0,25 OPTION max_matches = 10000 

但仍然没有返回部分单词匹配

如何启用部分单词匹配?在SPhinxQL?

Sphinx Server版本:2.2.9-id64-release(rel22-r5006) 在Cent Os 7 x 64

我当前的索引配置有

docinfo                 = extern
morphology              = stem_en
enable_star = 1

1 个答案:

答案 0 :(得分:2)

您可以使用min_infix_lenmin_prefix_len来实现此目标:

  

中缀长度设置允许使用术语模式的通配符搜索   'start *','* end','* middle *'等等。它也让你也禁用   短通配符,如果这些通配符太贵而无法搜索。

详细了解Sphinx Search current documentation