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

时间:2021-06-30 03:10:22

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;
  }