【问题标题】:Will Elasticseach reduce shards number by itself, if I reduce the shards paremeter in @Document annotation?如果我减少 @Document 注释中的分片参数,Elasticsearch 会自行减少分片数量吗?
【发布时间】:2019-12-20 23:13:09
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      使用给定数量的主分片创建索引后,您将无法对其进行修改。简单地重新部署您的应用可能不会重新创建索引,您需要先将其删除,然后让您的应用在启动时使用新的分片数量重新创建它。

      您可以使用以下方法轻松查看更改是否已应用(即您的索引是否有 5 个或 1 个分片):

      GET _cat/shards/your-index-name
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2011-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多