我正在使用Sphinx为大量数据提供搜索网页,最近我将Sphinx从v2.1.8升级到v2.2.4
我在配置文件中遇到了一些麻烦,其中一个是'enable_star'选项已被删除,这影响了我的搜索页面中的预期结果,所以如果搜索'rea'它将不会返回'真正的马德里'直到我完成了输入'真实',同样的问题在单词结束'madrid'。
如果我搜索'mad',预期的结果:
在我的情况下,我得到'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 . '*');
任何人都可以寻找这个。
答案 0 :(得分:2)
您似乎没有在索引上设置min_prefix_len
,建议您添加它。
虽然不确定您的索引如何工作,min_prefix_len
,enable_star=0
才能产生效果。
这应该允许expand_keywords
发挥其魔力。 poing建议从查询结尾删除*。这只会影响输入的最后一个单词,并且*应该通过expand_keywords
设置自动添加。