あいまいなタイトルで申し訳ありません。これが私の問題です。次のコードを使用して、lucene 検索から結果を取得しています
scoreDoc[] hits = results.scoreDocs;
int numTotalHits = results.totalHits;
for (int i = 0; i < numTotalHits; i++) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
System.out.println(i+":File name is: "+d.get("filename"));
System.out.println(i+":File content is: "+d.get("contents"));
}
現在、このコードは、インデックスが配列の境界を超えていることを示す例外をポップアップすることがあります。だから私は以下のコードを使用しましたが、例外は発生しません
scoreDoc[] hits = results.scoreDocs;
int numTotalHits = results.totalHits;
for (int i = 0; i < numTotalHits-1; i++) {
int docId = hits[i].doc;
Document d = searcher.doc(docId);
System.out.println(i+":File name is: "+d.get("filename"));
System.out.println(i+":File content is: "+d.get("contents"));
}
これは、検索結果の数をresults.totalHits
返すことを意味しますか?results.totalHits-2
ありがとうございました..