【发布时间】:2016-07-09 02:43:33
【问题描述】:
在我的 Spring/Lucene 应用程序中,我使用的是 Lucene IndexWriter、TrackingIndexWriter、SearcherManager 和 ControlledRealTimeReopenThread。
现在我正在尝试为数千个文档编制索引。为此,我添加了 Apache ActiveMQ 并在单独的消息使用者中为每个文档编制索引。
我注意到一个严重的问题 - 如果下次应用程序重新启动后 JVM 异常终止,我的 Lucene 索引为空,因为未执行 IndexWriter.commit() 操作。
如果我在每个trackingIndexWriter.addDocument(document); 之后调用IndexWriter.commit(),一切正常。
我认为在每个 trackingIndexWriter.addDocument(document); 之后使用 IndexWriter.commit() 并不是一个好主意,尤其是从性能的角度来看。
应用异常终止后如何正确管理我的索引不丢失?
【问题讨论】:
标签: lucene