当我在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是否支持更好的方法来解决此问题?

约臣

最佳答案

如记录的here所示,您可以使用TopDocCollectorgetTotalHits()检索它。

编辑:例如

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

07-24 13:06