【问题标题】:Solr 5 - disable idf scoringSolr 5 - 禁用 idf 评分
【发布时间】:2016-08-24 14:29:28
【问题描述】:

我正在使用 SOLR 5.5.0,并注意到与评分有关的不良行为。

搜索索引用于人员,具有 givenName 和 surName 字段。我对 givenName 的权重比 surName 高一点,但是对于某些查询,来自 surName 的命中的权重高于来自 givenName 的命中。这是由于 idf 加权。

例如,考虑搜索字符串“James”。关于我的 givenName 高于 surName 的权重,我希望带有 givenName “James” 的点击在结果的顶部,带有 surName “James” 的那些排名较低。但是,如果有 1000 人的 givenName 为“James”,而只有 10 人的 surName 为“James”,则后一组将因 idf 而获得最高分。

有没有办法在 solr 中禁用 idf?我所能找到的只是关于覆盖 DefaultSimilarity 的一些东西,但我不知道如何使用我的 xml 配置来做到这一点,而且该类在 lucene-5.5.0 中已被弃用。

【问题讨论】:

    标签: solr lucene solr5


    【解决方案1】:

    您可能真的不想禁用 idf,因为然后搜索 [James Garfield] 不会识别出“Garfield”比“James”更稀有,因此单独得分应该更高(比詹姆斯一个人)。

    我认为您要求的是两个字段之间的组合 idf。最简单的方法是创建第三个fullName 字段进行搜索。

    在您的示例中,fullName 中“James”的文档频率为 1010,无论 givenName=James 与 surName=James 是什么,匹配的得分均相同。

    【讨论】:

    • 然后,如果您想按照最初的预期优先匹配givenName,您还可以使用字段提升查询givenName。 (例如q=+fullName:James givenName:James^2
    猜你喜欢
    • 2016-01-17
    • 2012-11-25
    • 2016-05-15
    • 2011-12-24
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    相关资源
    最近更新 更多