【问题标题】:SOLR (4.3) - reducing score of "poor" quality (very short) documentsSOLR (4.3) - 降低“差”质量(非常短)文档的分数
【发布时间】:2016-09-06 18:54:17
【问题描述】:

我们正在运行 SOLR 4.3.1,我有一个关于控制 SOLR 如何对某些文档进行评分的问题。

在某些情况下,我们为质量“差”的文档编制索引 - 正文(在这种情况下为描述字段)可能只有 3 或 4 个单词。其他文件可能有更好的描述。执行搜索时会出现问题,并且在“好”(较长)和“差”(较短)文档中都找到了搜索词。

SOLR 似乎对较短文档中的匹配项评分较高,这是有道理的,因为搜索的词可能只有 3 个或 4 个词中的 1 个,因此它比描述较长的文档(其中只有在 100 个单词中找到 1 或 2 个匹配项(例如)。

是否有可能以某种方式惩罚或降低非常短文档的分数?我知道一些非常短的文档可能是可以的,但作为一般规则,在我们的案例中,非常短的文档通常是“质量差”。

建议?

我们正在使用 edismax 搜索。

谢谢,

比尔

【问题讨论】:

    标签: solr edismax


    【解决方案1】:

    BM25 Similarity 允许您调整长度标准化对文档评分的影响。正如您所观察到的,默认情况下,较短的字段内容在具有相同数量的术语匹配的情况下优于较长的字段内容。

    您听起来像是要中和或可能反转此长度规范化过程,以便所有长度的字段内容都被视为具有相同数量的术语匹配。


    两个调优参数是:

    k1 控制词频的饱和点(当您希望重复词对分数的影响更大/更小时),以及

    b(你想要的那个)控制内容长度对比赛得分的影响。

    如果您想深入了解,请阅读 BM25:http://opensourceconnections.com/blog/2015/10/16/bm25-the-next-generation-of-lucene-relevation/


    要使其正常工作,您需要将 BM25Similarity 添加到您的 SOLR schema.xml,可以是全局的,也可以嵌套在 description 字段的字段类型定义中(推荐,因为您可能不想对你的所有领域都进行这种处理)。

    <similarity class="solr.BM25SimilarityFactory"> <str name="k1">1.2</str> <str name="b">0.75</str> </similarity> (显示默认值)

    如果您将b 降低到0.0,您将有效地否定长度规范化的影响,这意味着在同一字段中,每个匹配相同单个查询词的两个文档将始终获得相同的分数(无论字段长度如何)该字段是评分时考虑的唯一因素。

    您需要重新加载配置并重新索引文档才能使此更改生效。


    您也可以尝试使用否定的b(可能是-0.75?),因为假设这应该可以奖励更长的文档,但我还没有在当前的实现中验证这一点,所以请回复如果你一定要否定b 按你需要的方式工作。

    【讨论】:

    • 谢谢彼得!我将对此进行实验。感谢您的详尽回答!
    猜你喜欢
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2017-08-03
    • 1970-01-01
    相关资源
    最近更新 更多