当前位置: 首页 > 面试题库 >

Lucene索引备份

柏高丽
2023-03-14
问题内容

在不使索引离线的情况下备份Lucene索引的最佳实践是什么(热备份)?


问题答案:

您不必停止IndexWriter即可备份索引。

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

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

这样可以为您提供一致的备份,这是索引的时间点映像,而不会阻止正在进行的索引编制。

我在《 Lucene in
Action》(第2版)中写过有关此内容的文章,该书摘录自http://www.manning.com/hatcher3(“使用Lucene进行热备份”
)中的书(免费),该书对此进行了详细说明。



 类似资料:
  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 假设我有两组对象“Questions”和“Users”,它们共享一个关系。 什么是最好的方法索引我的对象,以允许最新的变化反映在lucene IDEX? 是否应该为用户和问题提供单独的文档,并让lucene根据需要获取所需的问题/用户详细信息? 还是,走数据传输对象的方式?当发生更改时,只需删除这些文档并重新索引?

  • 在测试此文本时,我在要在文本中搜索的列上创建了lucene(3.0.1)索引: 如果我按关键字搜索,它会给出结果,但按 我正在使用standardAnalyzer: 因为已设置,它应创建令牌,并且应存在$GLD。Analyzer将从文本中删除停止字,因为word也将在该过程中删除。

  • 我是lucene的新用户,现在正试图获得一些基础知识。 null 这就是我如何将文档添加到索引中的方法: 如何让lucene索引也文件名?

  • 我正在使用Compass从DTO对象中过滤数据。如果字段是POJO对象,则使用标记字段;如果字段是字符串,则使用标记字段。这非常有效:我将对象和字符串编入索引。 我的问题是如何注释枚举数据类型? 我拥有的枚举示例: 在这个片段中,我应该在哪里放置注释,应该放置哪个注释?