Lucene索引备份

yan*_*isf 16 java lucene

在不使索引脱机(热备份)的情况下备份lucene索引的最佳做法是什么?

小智 20

您无需停止IndexWriter即可备份索引.

只需使用SnapshotDeletionPolicy,它可以"保护"某个提交点(及其包含的所有文件)被删除.然后,将该提交点中的文件复制到备份中,最后释放提交.

如果备份需要一段时间才能运行 - 只要你没有使用SnapshotDeletionPolicy释放提交点,IndexWriter就不会删除文件(即使它们已经合并在一起).

这为您提供了一致的备份,这是索引的时间点映像,而不会阻止正在进行的索引.

我在Lucene in Action(第2版)中写过这篇文章,并且摘自http://www.manning.com/hatcher3的书(免费),"使用Lucene的热备份",该文章更详细地描述了这一点. .