理解在索引时提升lucene文档与搜索时相应分数之间的关系

时间:2011-10-14 18:17:58

标签: lucene lucene.net

索引时,我会提升某些文档,但它们不会出现在检索到的文档列表的顶部。我查看了那些文件的分数,不知何故,检索到的文件的分数总是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);

1 个答案:

答案 0 :(得分:4)

我会在这里疯狂猜测,因为你还没有提供搜索代码的样本,但是为什么后续文档的分数是NaN的一个常见原因是因为你使用了一个Sort。排序时,大多数时候不使用文档的分数,因此默认情况下禁用。

如果您对搜索使用排序并想要得分,请检查setDefaultFieldSortScoring类的方法IndexSearcher。此方法允许您在使用排序的搜索中对文档进行评分。

http://lucene.apache.org/java/2_9_4/api/all/org/apache/lucene/search/IndexSearcher.html#setDefaultFieldSortScoring(boolean, boolean)