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」をセットに保存できます。次に、セットのサイズを尋ねますが、Lucene はこれを解決するためのより良い方法をサポートしていますか?

ヨッヘン

4

1 に答える 1

2

ここに記載されているように、TopDocCollectorを使用して取得できます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 に答える