当前位置: 首页 > 知识库问答 >
问题:

更新lucene索引-最流行的方法

蒙弘图
2023-03-14
    null

我发现在lucene Wiki中:lucene中没有直接更新程序...我还发现在lucene 4.1.0中,文档可以用UpdateDocument更新...

我已经尝试过IndexWriter.UpdateDocument(Term,Document),但在使用filter执行搜索时,我从我的一个方法中得到了NPE,正如1-4中所述,当我更新索引时不会发生什么。有人有过类似的问题吗?如何更新索引?

共有1个答案

拓拔君博
2023-03-14

我所做的基本上是这样的:

我保留了一个持久的indexreader/readers,这将保持它自创建以来的状态。

我再次开始删除和创建所有文档。我想我只是做一个deleteAll(),然后重新创建它们(addDocument())。

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

  • 当我在索引器()上显式调用,那么索引中的所有内容都与预期的一样。它包含字段、、和。 但是,当我现在通过调用Spring Data类的类进行更新时,索引只在更改的直接字段(例如名称或描述)时更改。将某些内容更改为实例不会更新索引。你知道为什么会这样吗? 请注意,我已经尝试向父级添加反向引用。对于: 对于: 但这于事无补。 我使用的是Spring Boot1.0.1,其中包括Hibernate4.3.

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

  • 问题内容: 在不使索引离线的情况下备份Lucene索引的最佳实践是什么(热备份)? 问题答案: 您不必停止IndexWriter即可备份索引。 只需使用SnapshotDeletionPolicy,它就可以“保护”给定的提交点(及其包含的所有文件),以免被删除。然后,将该提交点中的文件复制到您的备份中,最后释放该提交。 如果备份需要一段时间才能运行,这很好- 只要您不使用SnapshotDelet

  • 问题内容: 根据文档,我尝试按以下方式更新副本数 这将正确更改现有节点的副本数。但是,当logstash在第二天创建新索引时,number_of_replicas设置为旧值。 有没有一种方法可以永久更改此设置的默认值,而无需更新群集中的所有文件并重新启动服务? 我也尝试过 无济于事。 问题答案: 是的,您可以使用索引模板。索引模板是为集群中创建的新索引设置默认设置(包括映射)的好方法。 索引模板

  • 根据文档,我尝试过如下更新副本的数量 这将正确更改现有节点的副本计数。但是,当logstash在第二天创建新索引时,复制副本的数量设置为旧值。 是否有一种方法可以永久更改此设置的默认值,而无需更新所有的集群中的文件并重新启动服务? 我也试过了 没用。