Elasticsearch相似度discount_overlaps

时间:2017-05-22 14:28:14

标签: elasticsearch lucene

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

  

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

如果可能,有人可以通过示例解释上述内容。

1 个答案:

答案 0 :(得分:2)

首先,标准计算为boost / √length,此值存储在索引时。这会导致较短字段上的匹配得到更高的分数(因为10中的1通常比1000中的1更好)。

举个例子,让我们说我们的分析器上有一个同义词过滤器,它会在我们字段的索引形式中索引一堆同义词。然后我们索引这段文字:

  该男子扔了一个飞盘

分析器将所有同义词添加到字段后,它看起来像这样: post-analysis graph

现在,当我们搜索"该家伙投了一张光盘"时,我们会得到一个匹配。

问题是,出于上述规范计算的目的,长度是多少?

  • 如果discount_overlaps = false,则length = 12
  • 如果discount_overlaps = true,则length = 5