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

Bar*_*rka 1 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);
Run Code Online (Sandbox Code Playgroud)

Jf *_*lac 5

由于您还没有提供搜索代码示例,因此我将在这里进行疯狂猜测,但检索文档的分数为 NaN 的一个常见原因是因为您使用了 Sort。排序时,大部分时间不使用文档的分数,因此默认禁用。

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

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