【问题标题】:Moving data from oine Elasticsearch index to another with higher number of shards or increasing shard number in existing index将数据从一个 Elasticsearch 索引移动到另一个具有更多分片或增加现有索引中的分片数的索引
【发布时间】:2021-06-02 18:45:16
【问题描述】:

我是 Elasticsearch 的新手,我一直在阅读文档以找到一种方法来增加我的索引所包含的分片数量。目前我的索引如下所示:

country_data                              0     p      STARTED     227 100.7kb 192.168.0.115 $HOSTNAME
country_data                              0     r      STARTED     227 100.7kb 192.168.0.116 $HOSTNAME

我想将分片的数量增加到 5,但是我找不到合适的方法。我从另一个 Stackoverflow 问题中了解到,我应该能够这样做:

POST _reindex?slices=5
{
  "source": {
    "index": "country_data"
  },
  "dest": {
    "index": "country_data_new"
  }
}

但是,当我这样做时,我得到了我的 country_data 的副本,其中包含相同数量的分片和副本(1 和 1)。我试图在文档中了解更多关于它的信息,但我发现的只是:https://www.elastic.co/guide/en/elasticsearch/client/curator/current/option_slices.html

我在文档中找不到任何关于增加现有索引中的分片数量或如何将数据移动到具有更多分片的新索引的信息。我将不胜感激对这个问题的任何见解,或者至少是一个我可以学习如何做的网站。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:
    这可以通过以下任何一种方式完成。

    第一个选项:您可以使用弹性搜索Split Index API。 建议您在继续使用此方法之前,请先通过 documentation 一次。

    第二个选项Create a new index 具有相同的映射并为新分片提供所需的设置。然后使用reindex API 将数据从源索引复制到目标索引

    创建新索引:

    PUT /<NEW_INDEX_NAME>
    {
        "settings": {
            "number_of_shards": <REQUIRED_NUMBER_OF_SHARDS>
        },
        "mappings": {<MAPPINGS_OF_SOURCE_INDEX>}
      }
    }
    

    如果您在创建索引时没有在设置中提供分片数量,则默认情况下它会创建一个主分片和一个副本分片的索引。

    从源重新索引到新创建的索引:

    POST _reindex
    {
      "source": {
        "index": "<SOURCE_INDEX_NAME>"
      },
      "dest": {
        "index": "<NEW_INDEX_NAME>"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-02
      • 2017-09-30
      • 2015-10-29
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2020-08-03
      相关资源
      最近更新 更多