elasticsearch relevance score algorithm (二) :BM25

1. BM25

BM25: best matching 25

使用场景:elasticsearch 和 lucene 5之后默认的匹配得分算法。

在创建 index mapping 的时候,可以在 setting 中指定 bm25 算法,并声明算法中k 和 b 的参数值。

"settings": {
    "similarity": {
      "similarity_halfh": {
        "type": "BM25",
        "k1": 1.2,
        "b": 0.2
      }
    }
  },
  ...
}
2. BM25 和 TF/IDF 的区别

elasticsearch relevance score algorithm (二) :BM25_第1张图片
当某个词出现的频率越来越高时,TF的得分无限增大,而BM25计算出来的得分会稳定在一个值。

3. 公式

bm25
k 默认值是1.2, 数值越小,饱和度越高,b 的默认值是0.75(0-1),0 代表禁止 Normalization。

你可能感兴趣的:(#,4.,数据结构与算法,elasticsearch,algorithm,bm25)