繁体   English   中英

休眠搜索-删除Elasticsearch索引配置

[英]Hibernate search - delete Elasticsearch index config

我们正在使用质量索引器来创建索引本身和文档。 我们有自己的版本控制,其想法是在有新版本时完全删除所有文档和索引配置,并让Mass Indexer进行工作。

问题在于,与直接使用Lucene不同,当我们尝试清除所有索引时,它仅删除文档,而不删除索引配置,这在尝试修改现有字段时会导致冲突。

有没有办法通过Hibernate Search做到这一点,还是我们需要直接在集群上使用DELETE方法?

我假设您在从一个应用程序版本到另一个版本的迁移过程中运行此批量索引作业。 如果是这样,则在触发重新索引的一次性作业中,可以使用以下设置启动Hibernate:

hibernate.search.default.elasticsearch.index_schema_management_strategy drop-and-create

然后,在启动时,Hibernate Search将完全删除索引及其映射,然后重新创建它。

但是请小心 ,这只有在专用程序中执行质量索引时才可以。 您的应用程序可能不应该使用此设置启动,因为它将导致它在每次启动时都删除索引(例如,如果出于某种原因必须重新启动服务器)。

资料来源: 官方文件

附带说明:

问题在于,与直接使用Lucene不同,当我们尝试清除所有索引时,它仅删除文档,而不删除索引配置,这在尝试修改现有字段时会导致冲突。

这实际上与Lucene集成的行为相同:清除Lucene索引时,索引文件保持不变,只是所有内容都已删除。 主要区别是Elasticsearch具有一些索引元数据(映射),而“原始” Lucene没有。

但是,在您的情况下,当前的行为确实很烦人。 将来,我们可能会尝试将其作为HSEARCH-2861的一部分进行处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM