2010-02-25 84 views
9

我正在研究一個項目,我想通過閱讀Lucene索引並修剪它來構建標籤雲。我沒有設置Lucene引擎,它是團隊中的其他人,現在我只想讀取它的索引。你在Java中如何做到這一點?如何讀取Lucene索引?

回答

7

你需要尋找的是如何使用的IndexReader類中,.terms()方法是什麼讓你回到索引中的所有條款。

+0

這看起來更棒!如果它存在於WEB-INF/index文件夾中,有沒有機會知道如何訪問索引?我使用OpenCMS,這是默認位置。來自API文檔的 – 2010-02-26 11:42:26

+0

。 IndexReader的具體子類通常是通過調用其中一個靜態open()方法來構造的,例如,打開(字符串)。 – 2010-02-26 13:46:52

14

不知道你的「讀書」的指數是什麼意思:

  1. 如果您想查詢,你可以使用IndexSearcher的類。

  2. IndexReader允許您在讀取模式下打開索引。

如果你想查看索引的內容,你可以使用Luke

+1

謝謝!盧克看起來像我正在尋找的解決方案! – 2010-02-25 16:33:18

+0

BTW,你可以初始化一個'IndexSearch'像這樣: 'IndexSearcher的IndexSearcher的=新IndexSearcher的(DirectoryReader.open(FSDirectory.open(新文件(pathToIndex))));' 'IndexSearcher'也有一個構造函數接受一個'ExecutorService',你應該尋找並行搜索不同的段。 – 2014-05-15 18:33:10

9

你不喜歡這樣 -

IndexReader r = IndexReader.open("prdb_index"); 

int num = r.numDocs(); 
for (int i = 0; i < num; i++) 
{ 
    if (! r.isDeleted(i)) 
    { 
     Document d = r.document(i); 
     System.out.println("d=" +d); 
    } 
} 
r.close(); 
4

只是這樣做:

File indexDirectory = new File("YourIndexLocation"); 
IndexReader reader = IndexReader.open(FSDirectory.open(indexDirectory)); 
return reader.maxDoc(); //return total docs in index 
+0

謝謝,終於有一些代碼! – nilsi 2014-03-29 09:59:55