Lucene:查询的命中是什么?

3

我刚在这里看到totalHits和scoreDocs返回的是查询结果中排名最高和总数。

"hit"具体指什么?是搜索词在文档中的位置,还是包含该词的文档……或者其他什么?

谢谢。

1个回答

3
totalHits是匹配查询的文档数量。一个hit基本上是你输入的查询的匹配项。然而,一个hit可能是部分匹配或完全匹配。
例如,如果我们使用Lucene对一组3个文本进行索引:{“hello world”,“hello sailor”,“goodnight moon”},然后搜索:hello world
总命中数:2
1.078 hello world
0.181 hello sailor 浮点值表示hit的得分,即与查询字符串的相关性。
以下帖子提供了更多详细信息https://web.archive.org/web/20110228/http://lingpipe-blog.com/2009/02/18/lucene-24-in-60-seconds/

好的,不过totalHits还是有点令人困惑。它是TopDocs类的一个方法,这个类包含了最相关的文档(在我的情况下,我将限制设置为20个文档)。TopDocs docs = searcher.search(query, 20); 所以totalHits应该总是20...?! - aneuryzm
@Patrick,如果有20个实际匹配项,totalHits才会是20。你所做的是在实际匹配项超过20个的情况下将totalHits限制为20。 - Paul

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