【问题标题】:Solr deletes/optimizes affecting ranking scoreSolr 删除/优化影响排名分数
【发布时间】:2011-08-19 12:39:39
【问题描述】:

有人知道为什么 Solr 的排名会受到删除(但不清除)文档的影响吗?

即。如果我添加一个文档并搜索它,它的分数可能是 4.7 但如果我重新添加它(即 Solr 删除旧的并再次添加它......具有相同的值)然后执行相同的查询,结果有一个分数4.5。如果我对索引进行优化,那么分数会再次返回到 4.7。

我认为这是由于当文档已被逻辑删除但未从索引中清除时,Solr 中的 maxDoc 和 numDoc 之间存在差异。

这是一个错误吗?在我的情况下,它会导致问题,因为当删除不相关的文档(不在我的结果集中)时排序顺序会变得不稳定。

这是 Solr 3.2.0

-马特

【问题讨论】:

  • 我不会担心绝对值的变化...真正的问题是 relative 值似乎在变化,从而影响排序...

标签: search lucene solr ranking


【解决方案1】:

这并不是真正的错误,而是 Solr 默认情况下的工作方式 - 因为您推测删除文档在您优化之前不会真正删除它,因此统计信息仍然反映删除的文档直到那时。好处是它使删除成为一种快速操作(优化通常作为偶尔的过程进行)。其他一些引擎(例如 Xapian)确实会完全删除文档。

【讨论】:

  • 我了解它如何/为什么实际上没有删除文档,但为什么它使用 maxDoc 进行 idf 计算?我在网上阅读的所有地方似乎都建议使用 numDoc:lucene.apache.org/java/3_0_0/api/core/org/apache/lucene/search/… 然而,当我进行查询并让它解释时,它给了我: 12.179339 = (MATCH) fieldWeight(CPLNumber:LC059C4D2 in 143251),乘积:1.0 = tf(termFreq(CPLNumber:LC059C4D2)=1) 12.179339 = idf(docFreq=1, maxDocs=143270) 1.0 = fieldNorm(field=CPLNumber, doc=143251)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多