一磷醋、概述
ES升級后或者數(shù)據(jù)需要遷移猫牡,需要重建索引
這個只是個官網(wǎng)的翻譯,具體在做的時候會詳細(xì)講解
參考鏈接:
- 本地重建
https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade-inplace.html - 遠(yuǎn)程重建
https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade-remote.html
二邓线、Reindex in place 本地重建索引
1淌友、可以用Upgrade Assistant(Kibina6.8)重建索引
2、手工重建索引
- 新建索引骇陈,并指定mappings
- 將refresh_interval 設(shè)置為 -1震庭,number_of_replicas 設(shè)置為
- 使用reindex API
參考鏈接:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html - 將refresh_interval 和 number_of_replicas 設(shè)置為原來的值
- 等待同步完畢,狀態(tài)變?yōu)?green
三你雌、Reindex from a remote cluster 遠(yuǎn)程重建索引
1器联、新建一個集群,并添加到需要拉取的數(shù)據(jù)的老集群中
修改elasticsearch.yml:reindex.remote.whitelist: 老集群的IP:9200
2婿崭、針對每一個index的操作
- 在新集群中新建索引并指定mappings拨拓,將 refresh_interval 設(shè)置為-1,number_of_replicas 設(shè)置為0
- 使用reindex API將數(shù)據(jù)搬過來
POST _reindex
{
"source": {
"remote": {
"host": "http://oldhost:9200",
"username": "user",
"password": "pass"
},
"index": "source",
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "dest"
}
}
如果將wait_for_completion設(shè)置為false氓栈,則同步會在后臺進(jìn)行渣磷,可以通過下面的url查詢這個狀態(tài):TASK_ID是執(zhí)行后返回的
GET _tasks/TASK_ID
- 還原refresh_interval(默認(rèn)為30s) 及 number_of_replicas (默認(rèn)為1)
- 同步完畢后,并且狀態(tài)是green授瘦,就可以刪除舊的索引