索引时,我会提升某些文档,但它们不会出现在检索到的文档列表的顶部。我查看了那些文件的分数,不知何故,检索到的文件的分数总是NaN。
索引时文档的提升与检索时的得分之间有什么关系?我认为这些是相关的,而且,我认为我会在我的scoredocs中得到各种各样的分数,而不仅仅是NaN。如果你能对此有所了解,我将不胜感激。
我已阅读http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/search/Similarity.html
并且无法弄清楚缺少什么。
以下是简单的提升代码:
if (myCondition)
{
myDocument.SetBoost(1.1f);
}
myIndexWriter.AddDocument(document);
答案 0 :(得分:4)
我会在这里疯狂猜测,因为你还没有提供搜索代码的样本,但是为什么后续文档的分数是NaN的一个常见原因是因为你使用了一个Sort。排序时,大多数时候不使用文档的分数,因此默认情况下禁用。
如果您对搜索使用排序并想要得分,请检查setDefaultFieldSortScoring
类的方法IndexSearcher
。此方法允许您在使用排序的搜索中对文档进行评分。