首页 > 解决方案 > 如果我减少 @Document 注释中的分片参数,Elasticseach 会自行减少分片数量吗?

问题描述

@Document(shards=5)在我的 SpringBoot 应用程序中使用 Spring Data Elasticsearch 为我的实体。我已经意识到它太耗费资源,并且已经将其减少到 @Document(shards=1)并使用新代码重新部署了 java 应用程序。我在 ElasticSearch 方面没有采取任何行动。

Jest 客户端应该尽最大努力减少使用的分片数量,还是应该由我自己作为 Elasticsearch 管理员来完成?

标签: springelasticsearchspring-dataspring-data-elasticsearchelasticsearch-jest

解决方案


Spring Data Elasticsearch 在创建索引时使用此信息;它没有重新应用于更改分片数量等参数。因此,Spring Data Elasticsearch 无法实现您想要做的事情。

如果您有能力删除数据并有可能重新加载它,则删除索引,使用更改的@Document注释重新启动程序并重新加载数据。

如果您不能简单地重新加载数据,您可以直接在 Elasticsearch 中执行以下操作(具体命令请参阅 Elasticsearch 文档):

  • 使用您想要的分片设置创建一个新索引并将其命名为例如index-new
  • 将旧索引重新索引到新索引
  • 如果您可以使用新索引名称,请更改@Document注释以使用新索引。
  • 如果没有,则删除旧索引并使用旧名称和新设置重新创建它,并将从index-new重新索引到具有新名称的索引

推荐阅读