【问题标题】:Solr cloud scoring happens inside shard and not in overall collectionSolr 云评分发生在分片内,而不是在整体集合中
【发布时间】:2017-04-21 14:09:51
【问题描述】:

在 solr 云中的得分是在分片中计算的。

我有一个集合和两个碎片。我在 shard1 中有 110 个文档,在 shard 2 中有 90 个文档匹配字段名称:John

文档的 solr 评分因分片而异,我需要 solr 来计算整体集合中的文档而不是分片和合并中的分数。

例如:搜索 John 返回 2 条完全匹配的记录,分数分别为 3.2 和 2.2 。有没有办法根据集合而不是分片进行评分

【问题讨论】:

    标签: solr cloud


    【解决方案1】:

    你必须像这样在你的 solrconfig.xml 中启用ExactStatsCache

    <statsCache class="org.apache.solr.search.stats.ExactStatsCache"/>
    

    默认情况下,Solr 仅使用本地统计信息,这将使 Solr 使用全局统计信息进行评分,应该可以解决您的问题。

    【讨论】:

    • 谢谢。我会尝试并告诉你。
    【解决方案2】:

    您对分布式 IDF [1] 感兴趣。 这将允许您基于相同的 IDF 跨不同分片对文档进行精确评分。

    请记住,即使在这种情况下,“完全匹配的文档”也可能有不同的分数: 1)不同的字段长度 2) 所涉及术语的不同术语频率 3) 不同的提升(如果适用)

    干杯 [1]https://cwiki.apache.org/confluence/display/solr/Distributed+Requests

    【讨论】:

    • 我需要完全匹配的文档才能获得相同的分数。将尝试 Exactstatscache。
    • 有什么方法可以禁用某些评分参数,如 tf、idf、?
    猜你喜欢
    • 2015-04-12
    • 2014-05-29
    • 1970-01-01
    • 2014-06-02
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    相关资源
    最近更新 更多