如何在Lucene TopDocs中获取独特的文档数量?

时间:2012-09-25 08:15:05

标签: java lucene

当我在TopDocs对象上询问属性“totalHits”时,我得到了点击次数。 但我想知道“有多少”文件,而不是“总命中”。

示例:

- document 1: field A: foo bar - field B: testjes
- document 2: field A: bar foo - field B: foo bar

如果我搜索“foo”,当我要求“docs.totalHits”时,我会得到3个结果。 但我想知道文件的数量,即2。

我可以循环列表并将“文档ID”保存在Set中。然后询问Set的大小,但Lucene是否支持更好的方法来解决这个问题?

约亨

1 个答案:

答案 0 :(得分:2)

根据记录here,您可以使用TopDocCollectorgetTotalHits()检索它。

编辑:例如

TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
searcher.search(query, collector);
TopDocs topDocs = collector.topDocs();
int numResults = collector.getTotalHits();