【问题标题】:calculate time in merging lcuene indexes计算合并 lcuene 索引的时间
【发布时间】:2024-04-11 04:10:02
【问题描述】:

我在 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);}

}                                        

【问题讨论】:

    标签: java merge lucene indexing


    【解决方案1】:

    不幸的是,据我所知,不存在任何可能为您提供合并所需时间的 API。您可以尝试在 lucene 用户邮件列表中提出同样的问题。

    java-user@lucene.apache.org

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

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

    【讨论】: