当我在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是否支持更好的方法来解决这个问题?
约亨
答案 0 :(得分:2)
根据记录here,您可以使用TopDocCollector
从getTotalHits()
检索它。
编辑:例如
TopScoreDocCollector collector = TopScoreDocCollector.create(10, true);
searcher.search(query, collector);
TopDocs topDocs = collector.topDocs();
int numResults = collector.getTotalHits();