我使用Spring Data Elasticsearch在我的SpringBoot应用程序中为我的实体设置了@Document(shards=5)
。我已经意识到它太浪费资源了,已经将其减少到@Document(shards=1)
,并且刚刚用新代码重新部署了Java应用程序。我没有对ElasticSearch采取任何行动。
Jest客户端应该尽一切努力减少使用的分片数量,还是应该由自己作为Elasticsearch管理员来完成?
答案 0 :(得分:1)
Spring Data Elasticsearch在创建索引时使用此信息;它没有重新申请更改分片的编号等参数。因此,Spring Data Elasticsearch无法实现您想要做的事情。
如果您有能力删除数据并有可能重新加载数据,请删除索引,使用更改后的@Document
批注重新启动程序,然后重新加载数据。
如果不能简单地重新加载数据,则可以直接在Elasticsearch中执行以下操作(有关确切命令,请参阅Elasticsearch文档):
@Document
批注以使用新的索引。答案 1 :(得分:0)
一旦使用给定数量的主分片创建了索引,您将无法对其进行修改。只需重新部署您的应用程序可能就不会重新创建索引,您需要先将其删除,然后让应用程序在启动时使用新的碎片数重新创建它。
您可以使用以下方法轻松查看更改是否已应用(即索引是5个碎片还是1个碎片):
GET _cat/shards/your-index-name