【问题标题】:Getting stable SOLR scores获得稳定的 SOLR 分数
【发布时间】:2015-05-28 15:06:18
【问题描述】:

我对 SOLR 核心运行查询并使用过滤器限制结果 喜欢fq: {!frange l=0.7 }query($q)。我知道 SOLR 分数不 有绝对意义,但0.7(只是一个例子)是计算出来的 基于用户输入和一些启发式方法,效果很好。

问题如下:我在核心中更新了很多文档。 更新的字段只是元数据字段,与 以上搜索。但是因为更新内部是删除+插入,IDF 并且文档计数发生变化。计算的分数也是如此。突然间我的 查询返回不同的结果。

正如 Yonik 向我解释的 here,这种行为是设计使然。所以我的问题是:什么是最简单的 以及保持查询的分数和输出稳定的最小方法?

每次提交后运行优化应该可以解决问题,但我 想知道有没有更简单、更便宜的东西。

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    您确实需要运行优化。当您优化索引 solr 时,清除所有尚未指向的文档并使查询稳定。发生这种情况是因为在文档更新时构建此元数据信息的成本很高。因为这个 solr 只是在优化时这样做。有一个很好的方法可以查看您的索引是否或多或少稳定......当您访问 Solr API 时,您可以看到 Num DocsMax Doc 信息。如果Max Doc 大于Num Docs,则表明您有一些旧产品影响了您的相关性计算。优化索引这两个数字再次相等。如果这些数字相等,您可以相信 IDF 计算正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-06
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多