索引时,搜索时可以影响术语分数的因素是什么

时间:2013-04-03 13:32:59

标签: lucene scoring

问题很少令人困惑。我是Lucene的新手并经历了这些文件。我发现adding boost to a field增加了字段的范数,从而在搜索时增加了术语的分数。

即。在索引时将字段添加到字段会影响搜索时的分数。我的问题是除了提升之外,还有其他方法可以做同样的事情吗?请指教。

1 个答案:

答案 0 :(得分:5)

在Lucene 4.x 之前,曾经有一个基于向量空间模型的评分公式。

以下是影响Lucene得分的因素。

1)Tf :术语频率,即文档中术语的频率。

2)Idf :反向文档频率:日志(收集大小/有术语的文档数)“此公式可能有所不同。

3)Field Boost :你提到的那个。它是在索引时提供的。

4)Coord :基于在指定文档中找到多少查询字词的分数因子。

5)queryNorm(q)是一个标准化因子,用于使查询之间的得分具有可比性。这个因素不影响文档排名(因为所有排名的文档都乘以相同的因子),而只是尝试从不同的查询(甚至不同的索引)中得分可比

6)norm(t,d)封装了一些(索引时间)提升和长度因子:

a)文档提升 - 在将文档添加到索引之前调用doc.setBoost()进行设置。

b)字段提升 - 在将字段添加到文档之前调用field.setBoost()进行设置。

c)lengthNorm - 根据文档中此字段的标记数将文档添加到索引时计算,以便较短的字段对分数贡献更多。 LengthNorm由索引时生效的Similarity类计算。

7)术语提升:是查询q中术语t的搜索时间提升

有关Lucene默认评分公式的深入了解:查看文档:{​​{3}}

随着新版本的Lucene 4.x,推出了新的评分公式,如BM25。有关详细信息,请查看Lucene Similarity

的子类

您可以实施相似性的子类来自定义上述所有评分因子。这是Lucene 4.2 Similarity

相关问题