Lucene索引备份
问题内容:
在不使索引离线的情况下备份Lucene索引的最佳实践是什么(热备份)?
问题答案:
您不必停止IndexWriter即可备份索引。
只需使用SnapshotDeletionPolicy,它就可以“保护”给定的提交点(及其包含的所有文件),以免被删除。然后,将该提交点中的文件复制到您的备份中,最后释放该提交。
如果备份需要一段时间才能运行,这很好-
只要您不使用SnapshotDeletionPolicy释放提交点,IndexWriter就不会删除文件(即使例如,它们已经合并在一起)。
这样可以为您提供一致的备份,这是索引的时间点映像,而不会阻止正在进行的索引编制。
我在《 Lucene in
Action》(第2版)中写过有关此内容的文章,该书摘录自http://www.manning.com/hatcher3(“使用Lucene进行热备份”
)中的书(免费),该书对此进行了详细说明。