1

当我询问我的 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的大小,但是Lucene是否支持更好的方法来解决这个问题?

约臣

4

1 回答 1

2

如此所述,您可以从TopDocCollectorusing中检索它getTotalHits()

编辑:例如

TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
searcher.search(query, collector);
TopDocs topDocs = collector.topDocs();
int numResults = collector.getTotalHits();
于 2012-09-25T08:40:11.893 回答