Solr 'explain' 值与 Solr 分数有何不同以及为何不同?
How and why do Solr 'explain' values differ from the Solr score?
在使用 'debugQuery=on,' 调试从 Solr 返回的分数时,我发现 'explain' 部分中的顶级值不一定与我看到的生成的分数匹配Solr.
例如,这里是两个文档的顶级调试信息:
114628: Object
description: "sum of:"
details: Array[2]
match: true
value: 20.542768
357547: Object
description: "sum of:"
details: Array[2]
match: true
value: 26.517654
但是他们有分数:
114628: 20.542767
357547: 13.258826
我希望第二个文档与我的查询最相关,并且调试值似乎一致。但是,在我收到的最终分数中,该文档的分数已被下调。
Why/how调试值和我看到的最终分数有区别吗?有没有办法获得我期望的行为?
我的 collection.
中的核心优化后似乎解决了这个问题
所有差异的调试分数似乎都正好减半。我猜这是由于我的 Solr Cloud collection 有两个分片在两个节点之间复制的问题。
可能是没有减半的分数使用了 IDF 因子,该因子仅使用节点或分片之一中的文档计算得出。然而,正确的值出现在调试结果中而不是最终得分仍然很奇怪。
EDIT 这似乎只解决了那个案例的问题。我偶尔会在备用查询中看到同样的问题。现在所有受影响的分数正好是其调试分数的 1/4。
编辑 2 这已被确定为 Lucene 中的错误。问题可以在这里找到:https://issues.apache.org/jira/browse/LUCENE-7132
解决此问题之前的解决方法是在 schema.xml.
中使用 BM25 相似度
<similarity class="solr.BM25SimilarityFactory"/>
在使用 'debugQuery=on,' 调试从 Solr 返回的分数时,我发现 'explain' 部分中的顶级值不一定与我看到的生成的分数匹配Solr.
例如,这里是两个文档的顶级调试信息:
114628: Object
description: "sum of:"
details: Array[2]
match: true
value: 20.542768
357547: Object
description: "sum of:"
details: Array[2]
match: true
value: 26.517654
但是他们有分数:
114628: 20.542767
357547: 13.258826
我希望第二个文档与我的查询最相关,并且调试值似乎一致。但是,在我收到的最终分数中,该文档的分数已被下调。
Why/how调试值和我看到的最终分数有区别吗?有没有办法获得我期望的行为?
我的 collection.
所有差异的调试分数似乎都正好减半。我猜这是由于我的 Solr Cloud collection 有两个分片在两个节点之间复制的问题。
可能是没有减半的分数使用了 IDF 因子,该因子仅使用节点或分片之一中的文档计算得出。然而,正确的值出现在调试结果中而不是最终得分仍然很奇怪。
EDIT 这似乎只解决了那个案例的问题。我偶尔会在备用查询中看到同样的问题。现在所有受影响的分数正好是其调试分数的 1/4。
编辑 2 这已被确定为 Lucene 中的错误。问题可以在这里找到:https://issues.apache.org/jira/browse/LUCENE-7132
解决此问题之前的解决方法是在 schema.xml.
中使用 BM25 相似度<similarity class="solr.BM25SimilarityFactory"/>