lucene分数的最大值是多少?

问题描述:

我正在考虑使用StandardAnalyzer的默认评分函数。lucene分数的最大值是多少?

看来这个值有时高于1.0。

没有真正的最高分。

当Lucene进行评分时,它基本总结了一组评分,得出总分。

例如:

假设我搜索A OR B。该查询被分解为其组成部分 - AB。该查询的每个部分都使用子记分器独立搜索,并为查询的相关部分给出分数。如果文档同时包含AB,则分数将是来自两个分值得分的分数的组合。

因为可能有许多子得分,总得分可以大于1。

特别受欢迎的得分绝对的,这意味着它只能被用作比较的最高来自同一搜索的分数。不同搜索的分数不能直接比较。

如果确实需要介于0和1之间的值,则可以根据其值与搜索中的最高分数的比率对每个分数进行归一化。这会给你相当于百分比的分数。尽管如此,这些百分比仍然无法在搜索中进行比较。

更多信息可查询herehere

这里是描述分数如何计算的Lucene页:

http://lucene.apache.org/java/3_0_0/scoring.html

+0

请阅读常见问题解答并停止发布链接作为答案。 – 2012-01-19 01:08:53

得分的最高值取决于正在执行的查询。要找出给定查询的最高得分是多少,您可以通过fl参数请求得分字段,它需要明确请求。

Ex Req: http://server:7983/solr/select/?q=term&fl=*,score 

寻找在你的回应maxScore = “xx.xxxx”,而这会高于/低于1.0,根据查询,结果,相关...

Ex: <result name="response" numFound="29" start="0" maxScore="2.1740298"> 

请告诉我很重要记住分数本身的价值并不能提供太多的意义,但是当比较文档的相对分数与其提供价值的查询的maxScore的相对分数时。例如,如果文档#1的分数是1.9 &文档#27的分数是0.8,则当maxScore是“2.1740298”时,文档#1远比文档#27匹配。

下会影响得分,

  • 逆文档频率
  • 词频
  • 协调因子
  • 字段长度

除了这个功能,如

  • 指数时间推进
  • 查询时间推进

会影响分数是如何计算的。 SolrRelevancy提供了一些解释。更详细的解释可以在这里Lucene Similarity发现你可以打开调试选项,看看分数计算,

http://server:7983/solr/select/?q=term&fl=*,score&debugQuery=on 

例: 2.1740298 = fieldWeight(文字:“mmdci bldleg 02”中的210),产品: 1.7320508 = TF(phraseFreq = 3.0) 13.388552 = IDF(文本:mmdci = 812 bldleg = 264 02 = 6220) 0.09375 = fieldNorm(字段=文本,文档= 210)

对于Lucene的:

使用TopDocs.getMaxScore()。根据相关性进行默认排序时,返回所有匹配的最高分数。如果您按照除相关性以外的字段排序,则需要设置doTrackScores(true) & doMaxScore(true)

+0

+1。谢谢。很好的解释。我不使用solr,我直接使用lucene,所以我猜想有一些类似的获取给定查询的maxScore。 – user3111525 2012-01-19 09:09:22

+0

对不起忽略了您使用** Lucene **而没有** Solr **的事实。编辑我的答案包括它。 – mailboat 2012-01-19 14:34:32