斯芬克斯部分单词搜索,2.2.4版


Sphinx partial word search, version 2.2.4

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

我在配置文件中遇到了一些问题,其中之一是"enable_star"选项已被删除,这影响了我的搜索页面中的预期结果,所以如果搜索"rea",在我完成键入"real"之前,它不会返回"real madrid",同样的问题出现在单词"马德里"结尾。

如果我搜索"疯狂"的预期结果:

  • 皇家马德里
  • 马德里竞技
  • 疯狂鳄鱼
  • Madila
  • 疯狂的废话

在我的情况下,我得到了"疯狂的鳄鱼"answers"疯狂的布拉"。

这是我的配置文件的一部分:

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 . '*');

有人能找到这个吗。

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

虽然不确定你的索引会如何工作,但作为min_prefix_lenenable_star=0需要有效果。

这应该让expand_keywords发挥它的魔力。此时,建议从查询末尾删除*。这只会影响输入的最后一个单词,而且*应该通过expand_keywords设置自动添加。