计算合并lucene指数的时间

时间:2013-09-12 04:24:42

标签: java merge lucene indexing

我在java程序的帮助下合并lucene索引。索引的合并正在完成,但我也希望显示合并索引的等待时间。所以,有任何方法
计算合并索引所花费的时间或建议任何替代实际上我想显示进度条,它将显示合并索引所需的大致时间。 为了合并索引,我使用以下代码。

 try{
 File INDEX_DIR= new File("D:\\merge lucene\\abc\\");
 INDEX_DIR.mkdir();
 File indexDir = new File("D:\\merge lucene\\abc\\");
 Directory indexes[] = new Directory[indexDir.list().length];
 IndexWriter writer = new IndexWriter(
 FSDirectory.open(INDEX_DIR),
 new SimpleAnalyzer(),true,
 IndexWriter.MaxFieldLength.LIMITED); 
 indexes[0] = FSDirectory.open(indexDir);
 writer.addIndexes(indexes[0]); 
 File indexDir1 = new File("D:\\merge lucene\\def\\");
 Directory indexes1[] = new Directory[indexDir1.list().length];
 indexes1[0] = FSDirectory.open(indexDir1);
 writer.addIndexes(indexes1[0]);
 writer.optimize();
 writer.close();   
 System.out.println("index merged");


} 


    catch(Exception ex){System.out.println("exception here"+ex);}

}                                        

1 个答案:

答案 0 :(得分:0)

不幸的是,据我所知,没有任何API可以为您提供合并所需的时间..您可以尝试在lucene用户邮件列表上询问同样的问题..

<强> java-user@lucene.apache.org

但是,提供的代码段不正确您没有正确关闭所有资源。应该关闭所有打开的目录。您还应该关闭分析仪。不关闭资源会对索引结果产生影响。此外,如果发生任何索引删除,则不关闭资源也会导致索引删除失败..

它是一种更好的方法来关闭finally块中的资源,这样即使发生异常,也可以确保所有资源都已正确关闭。