簡體   English   中英

將數據從原始 Elasticsearch 索引移動到另一個具有更高分片數或增加現有索引中的分片數的索引

[英]Moving data from oine Elasticsearch index to another with higher number of shards or increasing shard number in existing index

我是 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

我在文檔中找不到任何關於增加現有索引中的分片數量或如何將數據移動到具有更多分片的新索引的信息。 我將不勝感激對這個問題的任何見解,或者至少是一個我可以學習如何做到這一點的網站。

這可以通過以下任何一種方式來完成。

第一個選項:您可以使用彈性搜索拆分索引 API 我建議您在繼續使用此方法之前,通過文檔取悅 go 一次。

第二個選項創建一個具有相同映射的新索引,並為新分片提供所需的設置。 然后使用重新索引 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>"
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM