首页 文章

SOLR得分范围发生了变化

提问于
浏览
0

我正在从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时,字段:*,得分

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不重叠 .

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

我得到了一个像“bobs cabinetry”这样的公司名称和另一个“所有美国科技企业”

我按公司名称运行两次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名被采取时所有的bobs木工都从结果中删除 .

是否有一些配置设置我可以更改以使分数计算像4.10.2中那样运行?

或者是其他东西?

1 回答

  • 1

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

    • 使用tdidf相似度,见here

    • 查看发行说明,看看其他一些默认值是否发生变化,对分数有一定影响 . 在请求中使用debug和explain参数来获取有关如何计算结果的详细信息

相关问题