【问题标题】:SOLR Score Range ChangedSOLR 分数范围已更改
【发布时间】:2018-08-02 15:04:09
【问题描述】:

我正在从 SOLR 4.10.2 迁移到 SOLR 7.1。

一切似乎都很顺利,除了一件事:结果文档返回的分数给出了不同的分数。

核心使用架构。 这是我正在搜索的字段的架构信息:

<field name="IDX_Company" type="text_general" indexed="true" stored="false" multiValued="true" />
<field name="Company" type="string" indexed="true" stored="true"/>
<copyField source="Company" dest="IDX_Company"/>

搜索 maxrows=750 时,字段:*,score

IDX_Company:(猫和刮)

SOLR 7.1:最高分 6.95,最低 6.28

SOLR 4.10.2:最高分 8.63,最低分 0.91

IDX_InsuredName:(猫和抓挠和发烧)

SOLR 7.1 最高分数为 12.99,最低分数为 11.25 SOLR 4.10.2 最高 3.97 最低 0.77

查看值的范围有何不同(7.1 中的范围不会下降到 0.x) 另请注意,当我在 7.1 的搜索词中添加一个词时,最高分数会翻倍。最重要的是,4.10.2 中的范围重叠 - 但 7.1 不重叠。

更多信息,向您展示我如何使用这些信息,以及为什么这会导致问题。

我得到了一个像“鲍勃橱柜”这样的公司名称和另一个“全美国科技企业”

我为每个公司名称运行两个 SOLR 查询,我将它们称为 1-AND、1-OR、2-AND、2-OR。

IDX_Company:(bobs AND cabinetry) &f=*,score,requestid:"1-AND"
IDX_Company:(bobs OR cabinetry) &f=*,score,requestid:"1-OR"
IDX_Company:(all AND american AND tech AND enterprise) &f=*,score,requestid:"2-AND"
IDX_Company:(all OR american OR tech OR enterprise) &f=*,score,requestid:"2-OR"

我将结果组合在一起,按分数降序排序,然后取前 750 行。(requestid 让我知道结果来自哪个查询)

由于分数范围的变化,排序将所有美国科技企业行推到结果的顶部(因为没有重叠),并且当前 750 名被取走时,所有 bob carpentry 都被删除结果。

是否可以更改一些配置设置以使分数计算像在 4.10.2 中一样?

还是别的什么?

【问题讨论】:

    标签: solr


    【解决方案1】:

    对于初学者,Solr6 中的相似性更改为 BM25,所以这已经是应该做的事情了。如果您想尽可能获得类似于 4.x 的分数,我会:

    1. 使用tdidf相似度,见here
    2. 查看发行说明,查看是否有其他默认更改对分数有影响。在请求中使用调试和解释参数来获取有关如何计算结果的详细信息

    【讨论】:

    • 感谢您的指导 - 我现在使用 ClassicSimilarityFactory 没有参数。最大值不再像添加条款那样跳跃,但我仍然得到不那么低的范围 - 检查发行说明......
    猜你喜欢
    • 2018-12-27
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多