2010-06-29 42 views
2

我正在研究在另一個索引中構建熱門術語索引的遺留代碼。沒有單元測試,並且索引過程是一個等待的痛苦,因爲第一個索引需要很長的時間來構建。Lucene索引的單元測試

我想以不同方式構造第二個(熱門詞彙)索引。是否有最佳做法來測試是否正確創建了Lucene索引?

編輯>>每@帕斯卡的建議下我使用的是RAMDirectory,再進行試驗,我只是寫我設立的IndexReader並通過遠期效果遍歷,打印出每學期,以確保數據的外觀索引好的。

代碼:

IndexReader reader = IndexReader.open(dir2); 
TermEnum terms = reader.terms(); 
System.out.println("Here come the terms!"); 
while (terms.next()){ 
    if (terms.term().field().equals("FULLTEXT")){ 
     System.out.println(terms.term()); 
    } 
} 
int numDocs = reader.maxDoc(); 
System.out.println("Number of Docs: " + numDocs); 

如果該指數是真正的大我讓它運行一下,然後只是阻止它中途。

此外,Luke是一個偉大的工具檢查索引,如果你想更徹底...我只是尋找快速的東西。

歡迎任何其他想法!

回答

3

當單元測試Lucene索引時,我經常使用RAMDirectory,因爲它是快速構建的。

+0

好主意,這樣它也不會持續正確嗎? – stinkycheeseman 2010-06-29 21:15:15

+0

是的,它不會堅持到磁盤,但它會留在內存中的測試時間。 – 2010-06-29 22:10:24

+0

這真的很好,謝謝Pascal! – stinkycheeseman 2010-07-01 14:33:57