2011-09-28 98 views
3

我已经为我的系统实现了solr/lucene模糊匹配,并且其工作完美。在solr查询结果中返回模糊匹配百分比

我有要求显示百分比模糊匹配查询发送回应后。 举例来说,如果我的索引数据是“rushikupadhyay”,如果我的查询是“rushikupadhya”〜0.8,我应该得到确切的百分比作为响应的一部分,如0.85或85%。

我想用个结果作为应用程序的一部分,并执行其他步骤,根据返回值,如果像匹配百分数为70-80%做X,80-90%做Y,和> 90%做Z.

任何指针表示赞赏。

回答

-1

请注意:在这篇文章的Lucene Wiki - ScoresAsPercentages指南发现,你可能想要审查之前,决定去纯粹的基于百分比的逻辑。

但是,如果您决定使用百分比值,则可以通过在查询响应中包含分数字段来获取该值。请参阅Solr管理页面(完整界面链接)将引导您到/admin/form.jsp在字段返回选项它显示,*,score这将返回结果集中每个文档的匹配分数。但请注意,这是文档匹配的原始分数,并且与<result>元素的maxScore值有关。因此,为了获得每个文档的真实百分比分数,您需要使用诸如(score/maxScore * 100)之类的逻辑将每个文档分数与maxScore进行归一化,以获得正确的百分比值以显示。

+1

该建议(在链接中)不适用于此特定情况。是的,匹配的自然分数与索引中整个文档相关联,但模糊查询基于Levenshtein距离,其独立于其他文档在[0,1]中具有值。我认为这是OP想要在结果中显示的内容 –