[英]How to efficiently move data from elasticsearch index (with one shard) to another index (with 5 shards)?
[英]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.