spring - 如果我减少@Document批注中的shards参数,Elasticsearch会自行减少shards数量吗?

标签 spring elasticsearch spring-data jest spring-data-elasticsearch

我使用Spring Data Elasticsearch在我的SpringBoot应用程序中为我的实体添加了@Document(shards=5)。我已经意识到它太浪费资源了,并将其简化为@Document(shards=1),并只是使用新代码重新部署了Java应用程序。我没有对ElasticSearch采取任何行动。

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

最佳答案

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

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

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

  • 使用您想要的分片设置创建一个新索引,并将其命名为index-new
  • reindex your old index to the new index
  • (如果可以使用新的索引名),请更改@Document批注以使用新的索引。
  • 如果不是
  • ,则删除旧索引并使用旧名称和新设置重新创建它,并使用新名称
  • 从index-new重新索引到索引

    关于spring - 如果我减少@Document批注中的shards参数,Elasticsearch会自行减少shards数量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493957/

    相关文章:

    java - 如何在改造中发送 byte[] 数组

    java - 如何基于 URL 模式应用 Spring Boot 过滤器?

    elasticsearch - Logstash Kafka主题作为Elasticsearch索引名的一部分

    spring - 是否可以在 Spring Data Jpa 的另一个实体中重用规范?

    Javascript - 收到警报消息后停止继续

    java - 自动设置 createdOn 和 UpdatedOn

    java - 同一个请求的不同执行时间

    java - spring-data-neo4j 中的数据建模

    python - Elasticsearch Kibana TimeStamp key 丢失

    elasticsearch - NEST:如何查询多个索引并处理不同的子类(文档类型)?