我在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);}
}
答案 0 :(得分:0)
不幸的是,据我所知,没有任何API可以为您提供合并所需的时间..您可以尝试在lucene用户邮件列表上询问同样的问题..
<强> java-user@lucene.apache.org 强>
但是,提供的代码段不正确。 您没有正确关闭所有资源。应该关闭所有打开的目录。您还应该关闭分析仪。不关闭资源会对索引结果产生影响。此外,如果发生任何索引删除,则不关闭资源也会导致索引删除失败..
它是一种更好的方法来关闭finally块中的资源,这样即使发生异常,也可以确保所有资源都已正确关闭。