2010-06-29 62 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