【发布时间】: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