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

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

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

技术分享

IDF公式

技术分享

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

早期的版本使用的是TFIDFSimilarity,

Lucene TFIDFSimilarity给出的理论评分公式:

对应的还有

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

  /** Expert: Set the Similarity implementation used by this IndexSearcher.
   *
   */
  public void setSimilarity(Similarity similarity) {
    this.similarity = similarity;
  }
原文地址:https://www.cnblogs.com/davidwang456/p/9959059.html