繁体   English   中英

Sphinx搜索最佳匹配结果

[英]Sphinx search best matching result

我在我的项目之一中使用了狮身人面像搜索。 我需要使搜索更准确。 例如,我的搜索是“我的Wordpress网站需要一名设计师和seo”。 所以我想要的是获得最佳匹配的结果,其中包含设计师,seo和wordpress。 这是我的代码

 $cl = new SphinxClient();
 $cl->SetServer('1.23.4', 456);
 $cl->SetMaxQueryTime(15000);
 $cl->SetMatchMode(SPH_SORT_RELEVANCE);
 $s->setMatchMode(SPH_MATCH_ANY);
 $s->SetLimits(0, 100);
 $res = $cl->query($searchterm,"products");

请帮帮我,谢谢

排名不是“魔术”-狮身人面像遵循一个精确的公式。 但是,其主观要使用什么公式,每个应用程序都是不同的,并且将从不同的设置中受益。

在您的示例中,几乎可以肯定的是,您的查询中包含“常见”字词。 例如,无论其他单词是否匹配,所有包含“和”的文档都将匹配!

停用词是一种处理方式(但有时有时很简单),基本上,您将所有常用词添加到停用列表中,然后在匹配过程中不使用它们。

设置字段权重也可能确实有帮助,因为例如在标题中使用“常用”字词不太可能(而全文可能会负担很多)

或有定额运算符,因此可能需要一定数量的单词(与停用词结合使用或单独使用!),例如,可能需要至少60%的单词。 而不只是其中之一。

除了停用词外,还可以虚拟地实现它,即预过滤查询并删除常用词。

(停用词或常用词通常会根据您的特定索引手动创建。索引器内置了一个工具,可以从索引中提取常用词,可以用作起点)

同样,只要切换到SPH_MATCH_EXTENDED(可以通过使用定额运算符来保持“ OR”行为),您就可以灵活地选择排名模式(setRankingMode),这为调整排名提供了更多可能性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM