lucene源码分析(4)Similarity相似度算法

时间:2022-09-02 18:11:50

lucene 7.5.0默认的评分Similarity是BM25Similarity (IndexSearcher.java)

  // the default Similarity
private static final Similarity defaultSimilarity = new BM25Similarity();

lucene源码分析(4)Similarity相似度算法

IDF公式

lucene源码分析(4)Similarity相似度算法

  • f(qi,D):就是词频
  • |D|:[给定文档]D长度。
  • avgdl:索引中所有文档长度。

早期的版本使用的是TFIDFSimilarity,

Lucene TFIDFSimilarity给出的理论评分公式:
lucene源码分析(4)Similarity相似度算法

对应的还有

lucene源码分析(4)Similarity相似度算法

修改相似度算法的实现可以通过下面的方法实现

  /** Expert: Set the Similarity implementation used by this IndexSearcher.
*
*/
public void setSimilarity(Similarity similarity) {
this.similarity = similarity;
}