Elasticsearch 相似度 discount_overlaps

Alk*_*ris 3 lucene elasticsearch

我正在使用 Elasticsearch 5.3.1,我正在评估 BM25 和 Classic TF/IDF。我遇到了discount_overlaps可选的属性。

确定计算范数时是否忽略重叠标记(位置增量为 0 的标记)。默认情况下这是真的,这意味着在计算规范时重叠标记不计算在内。

如果可能的话,有人可以用一个例子来解释上面的意思。

fem*_*gon 6

首先,范数计算为boost / ?length,并且该值存储在索引时间。这会导致较短字段的匹配获得更高的分数(因为十分之一通常比千分之一更好)。

例如,假设我们的分析器上有一个同义词过滤器,它将以我们字段的索引形式索引一堆同义词。然后我们索引这个文本:

那人扔了一个飞盘

一旦分析器将所有同义词添加到字段中,它看起来像这样: 分析后图

现在,当我们搜索“The dude pitched a disc”时,我们会得到一个匹配项。

问题是,就上述范数计算而言,长度是多少?

  • 如果discount_overlaps = false,则长度= 12
  • 如果discount_overlaps = true,则长度= 5