2015-04-02 43 views
0

我需要在Lucene 3.5.0中爲每個查詢詞提取整個發佈列表。我創建了索引。我的問題是,我不知道如何獲取特定索引條款的文檔ID。我閱讀了IndexReader類的所有方法,該方法給出了指向任何索引術語的文檔數量的方法,但無法確定如何獲取指向任何索引術語的docId集合。請幫助。請爲我提供一些示例代碼。 Thx :)如何在Lucene中顯示每個查詢詞的發佈列表或文檔ID

回答

0

這就是搜索。只要搜索使用TermQuery獲得的特定期限的所有docIds:

TopDocs docs = searcher.search(new TermQuery(new Term("myField", "term")), maxHits); 
for (ScoreDoc doc : docs.scoreDocs) { 
    int docid = doc.doc; 
    //Do something with it... 
} 
+0

謝謝,但是這將搜索查詢術語得到的文檔列表.....我們DocEnums可以檢索整個排列表每個查詢詞直接?例如對於查詢「銀卡車」,40個包含銀牌的文檔和25個包含卡車關鍵字的文檔。我希望提取這65個文檔的docid。 – anuJ 2015-04-05 12:20:22

+0

同樣,這正是搜索lucene所做的。獲取(和分數)查詢條件的docid。這就是倒排索引的作用。這是什麼方式*不*做你在問什麼?使用'DocsEnum'等來做這件事可能是可能的,但只會讓它更加混亂,而且可能會比較慢。 – femtoRgon 2015-04-05 13:40:16

+0

謝謝......做到了 – anuJ 2015-04-28 17:06:48

相關問題