Lucene指数的单元测试

时间:2010-06-29 17:58:08

标签: unit-testing junit lucene legacy-code

我正在研究在另一个索引中构建流行术语索引的遗留代码。没有单元测试,索引过程很难等待,因为第一个索引需要很长时间才能构建。

我想以不同方式构建第二个(流行术语)索引。是否有最佳实践用于测试是否正确创建Lucene索引?

编辑>> Per @ Pascal的建议我正在使用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是检查索引的好工具,如果你想要更彻底......我只是在寻找快速的东西。

欢迎任何其他想法!

1 个答案:

答案 0 :(得分:3)

在对Lucene索引进行单元测试时,我经常使用RAMDirectory,因为它可以快速构建。