Lucene/Lucene.NET - Document.SetBoost()的值是什么?

7

我知道它接受浮点数,但是在结果的各个级别中,一些典型的增强值是什么?

例如:

如果我想将文档的权重提高10%,那么我应该将其设置为1.1吗? 那么20%就设置为1.2?

如果我开始将增强值设置为75.0或500.0之类的值会发生什么?

编辑:修正格式

3个回答

6
请参阅Lucene相似性文档以获取公式。原则上,在其他因素相等的情况下,将文档的加权设置为1.1确实会使其得分比加权为1.0的相同文档高10%。如果您有一组在搜索中应该具有内在优先权的文档,则这可能是一个好主意。请注意,文档加权是索引时间属性,这使得更改文档的加权而不重新索引它变得不可能。 评分中还有其他重要因素-包括术语匹配分数、规范等。 详见搜索相关性问题调试

1
但请注意,文档和字段的加权最终被编码为单个字节,带有3位数的尾数--因此任何小于25%的差异可能完全不会被注意到。 - jsalvata

2

在Yuval所说的内容基础上,这个值是由字段增益和文档增益函数决定的。增益值被编码为一个字节。因此,在存储这个值时可能会丢失精度。通过使用Searcher.Explain()进行调试可以帮助你获得正确的增益量。

如果你想要保留增益值(例如,在从当前索引中重建索引时很有用),你可以将其加入到一个存储字段中。


2
重要的是要记住,提高搜索排名不应该孤立地进行,您需要将其视为全球策略的一部分,列出每个影响相关性的标准,并对这些标准进行排序。定义每个标准之间的关系。您是否定期重新索引或只是添加新文档?如果您定期重新索引,则可以调整文档提升标准,否则您需要事先仔细考虑。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接