什么是相关度排序
Lucene对查询关键字和索引文档的相关度进行打分,得分高的就排在前边。
如何打分Lucene是在用户进行检索时实时根据搜索的关键字计算出来的,分两步:
- 计算出词(Term)的权重
- 根据词的权重值,计算文档相关度得分。明确索引的最小单位是一个Term(索引词典中的一个词),搜索也是要从Term中搜索,再根据Term找到 文档,Term对文档的重要性称为权重,影响Term权重有两个因素: 2.1 Term Frequency (tf): 指此Term在此文档中出现了多少次。tf 越大说明越重要。 词(Term)在文档 中出现的次数越多,说明此词(Term)对该文档越重要,如“Lucene”这个词,在文档中出现的次数 很多,说明该文档主要就是讲Lucene技术的 2.2 Document Frequency (df): 指有多少文档包含次Term。df 越大说明越不重要。 比如,在一篇英 语文档中,this出现的次数更多,就说明越重要吗?不是的,有越多的文档包含此词(Term), 说明 此词(Term)太普通,不足以区分这些文档,因而重要性越低。
boost是一个加权值(默认加权值为1.0f),它可以影响权重的计算
- 在索引时对某个文档中的field设置加权值高,在搜索时匹配到这个文档就可能排在前边。
- 在搜索时对某个域进行加权,在进行组合域查询时,匹配到加权值高的域最后计算的相关度得分就 高。 设置boost是给域(field)或者Document设置的