java - Lucene 索引备份

标签 java lucene

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

最佳答案

您不必为了备份索引而停止您的 IndexWriter。

只需使用 SnapshotDeletionPolicy,它可以让您“保护”给定的提交点(及其包含的所有文件)不被删除。然后,将该提交点中的文件复制到您的备份,最后释放提交。

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

这为您提供了一个一致的备份,它是索引的时间点图像,不会阻止正在进行的索引编制。

我在《Lucene in Action》(第 2 版)中对此进行了介绍,并且从 http://www.manning.com/hatcher3 提供(免费)的书中摘录了论文。 ,“使用 Lucene 进行热备份”,对此进行了更详细的描述。

关于java - Lucene 索引备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897784/

相关文章:

java - 正则表达式检查 Android 中的多个条件

java - 进程在简单的 for 循环中停滞,取决于迭代器类型(潜在的 JVM 错误?)

java - Sonar 中的单元测试执行时间非常长

sql-server - CF 9's Apache Lucene vs SQL Server' s 全文搜索?

xml - 数千个文档(pdf 和/或 xml)的可搜索存档的最佳实践

mysql - 使用 Mysql 数据库的 Solr 搜索,任何用于数据导入的实用程序

java - XML解析错误 "well-formed"

java - Lucene 从索引更新文档字段,没有松散信息

c# - 避免在重建期间删除当前的 Lucene.NET 索引

java - 在 REST 服务中实现方法 OPTIONS 的最佳方式