我用TestRegexpQuery在Lucene的這個單元測試工作,一切都運行得很好,但是當我增加了一些額外的打印語句,我不明白爲什麼它不返回文檔本身。Lucene的空車返回正則表達式搜索結果
private int regexQueryNrHits(String regex) throws IOException {
// RegexpQuery query = new RegexpQuery(newTerm(regex));
// return searcher.search(query, 5).totalHits;
RegexpQuery query = new RegexpQuery(newTerm(regex));
TopDocs result = searcher.search(query, 5);
// my code to print the result instead of just the counts
//START
ScoreDoc[] docs = result.scoreDocs;
for (ScoreDoc scoreDoc : docs) {
System.out.println(scoreDoc);
System.out.println(scoreDoc.doc);
System.out.println(scoreDoc.score);
System.out.println(scoreDoc.shardIndex);
System.out.println(searcher.getIndexReader().document(scoreDoc.doc));
}
System.out.println("---------");
// end
return result.totalHits;
}
這個測試只插入一個文檔,這是勝負的樣子,我希望它返回無論是句子或匹配的正則表達式,但一切看起來空文件的標記..
---------
doc=0 score=1.0 shardIndex=0
0
1.0
0
Document<>
---------
doc=0 score=1.0 shardIndex=0
0
1.0
0
Document<>
任何人都可以幫助我理解結果中究竟發生了什麼?