当我在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所示,您可以使用TopDocCollector
从getTotalHits()
检索它。
编辑:例如
TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
searcher.search(query, collector);
TopDocs topDocs = collector.topDocs();
int numResults = collector.getTotalHits();