2010-06-29 1 views
2

Я работаю над устаревшим кодом, который строит индекс популярных терминов в другом индексе. Нет никаких модульных тестов на месте, и процесс индексирования является болью ждать, потому что первый индекс занимает так много времени для сборки.Единичный тест для индексов Lucene

Я хочу структурировать второй (популярный термин) индекс по-разному. Есть ли лучшая практика для тестирования, чтобы увидеть, правильно ли создается индекс Lucene?

EDIT >> Per @ советы Паскаля я использую 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

+0

Да, он не будет сохраняться на диске, но он останется в памяти на время теста. –

+0

Это работает очень хорошо, спасибо Паскаль! – stinkycheeseman