【问题标题】:The formula of ScoreDoc.score. in LuceneScoreDoc.score 的公式。在 Lucene 中 【发布时间】:2018-11-22 16:45:01 【问题描述】: 我想使用 Lucene 创建一个研究引擎。从 Lucene 文档中,我注意到 ScoreDoc.score 给出了文档和查询之间的相似度分数。 我想知道score的相似度是怎么计算的? 请帮帮我.. 【问题讨论】: 标签: java apache search solr lucene 【解决方案1】: 相似分数是根据用户正在执行查询的字段中使用的相似模型计算的。有两个我知道 tf-idf,另一个是 BM25。 这两者都使用文档长度、词频、idf 等文档特征。因此,如果有帮助,您可以查看此 link 【讨论】: 该链接并没有真正解释 BM25 的工作原理 - 可以在 BM25 - The Next Generation of Lucene Relevation 找到更好的解释。如今,BM25 是 Solr 中的默认相似度。 @MatsLindh找不到页面 @AmanTandon 我想在 Lucene 中标准化分数,你知道怎么做吗? @Noran 请参考github.com/apache/lucene-solr/blob/releases/lucene-solr/6.4.0/… 您可以将评分算法(BM25)给出的分数除以getMaxScore返回的最大分数以标准化分数,但是您能解释一下为什么要标准化那些价值观? @Noran 这是 Mats 提供的更正链接,它很好地解释了 BM25。 opensourceconnections.com/blog/2015/10/16/…