Sphinx部分单词搜索,版本2.2.4

时间:2014-09-22 11:49:50

标签: php sphinx

我正在使用Sphinx为大量数据提供搜索网页,最近我将Sphinx从v2.1.8升级到v2.2.4

我在配置文件中遇到了一些麻烦,其中一个是'enable_star'选项已被删除,这影响了我的搜索页面中的预期结果,所以如果搜索'rea'它将不会返回'真正的马德里'直到我完成了输入'真实',同样的问题在单词结束'madrid'。

如果我搜索'mad',预期的结果:

  • 皇家马德里
  • Atlatico Madrid
  • 疯鳄鱼
  • Madila
  • mad bla

在我的情况下,我得到'Mad-Croc'和'mad bla'。

以下是我的配置文件的一部分:

docinfo = extern
mlock = 0
morphology = stem_en
min_word_len = 1
expand_keywords = 1
dict = keywords

PHP代码:

$_sphinx = new SphinxClient();

$_sphinx->SetServer('............', '....');

$_sphinx->SetMatchMode(SPH_MATCH_ANY);
$_sphinx->SetFieldWeights(array('auther_name' => 50));
$_sphinx->SetArrayResult(true);
$_sphinx->SetSortMode(SPH_SORT_EXTENDED2, 'cat_priority DESC, @weight DESC');

//////////////////
$_result = $_sphinx->Query($searchTerm . '*');
任何人都可以寻找这个。

1 个答案:

答案 0 :(得分:2)

您似乎没有在索引上设置min_prefix_len,建议您添加它。

虽然不确定您的索引如何工作,min_prefix_lenenable_star=0才能产生效果。

这应该允许expand_keywords发挥其魔力。 poing建议从查询结尾删除*。这只会影响输入的最后一个单词,并且*应该通过expand_keywords设置自动添加。