基本思路
当我们在创建一条索引时,添加好 mapping 后,可设置一个 alias 指向该索引,然后生产环境采用该 alias 来索引数据。当然,如果没有这样做的话,建议趁早备份,修改 API 。
既然已创建的 indices 无法修改,我们可以重新创建一个新的 indices, 然后将原 indices 上的数据复制到新的 indices 上,再将 alias 指向新 indices。最后,删除原索引。
参数说明
当前索引名称: test_v1
生产索引名称:test
目标索引名称: test_v2
操作步骤
将生产索引指向当前索引:test -> test_v1
Method: POST
Url:
Body:
{
"actions": [
{ "add" : { "index" : "test_v1", "alias" : "test" } }
]
}
1
2
3
4
5
创建新索引 test_v2
Method: PUT
Url:
Body:
{
"mappings": {
"content": {
"properties": {
"title": {
"type": "text",
"fields": {
"accurate": { "type": "keyword" }
},
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"include_in_all": "true"
},
"content": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"include_in_all": "true"
},
"author": { "type": "keyword" },
"category": { "type": "keyword" }
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
复制数据:test_v1 -> test_v2
Method: POST
Url:
Body:
{
"source": {
"index": "test_v1"
},
"dest": {
"index": "test_v2"
}
}
1
2
3
4
5
6
7
8
修改别名: test -> test_v2
Method: POST
Url:
Body:
{
"actions": [
{ "remove" : { "index" : "test_v1", "alias" : "test" } },
{ "add" : { "index" : "test_v2", "alias" : "test" } }
]
}
1
2
3
4
5
6
删除旧索引: test_v1
Method: DELETE
Url:
---------------------
作者:阳小猿
来源:CSDN
原文:https://blog.csdn.net/Sympeny/article/details/77650414
版权声明:本文为博主原创文章,转载请附上博文链接!
阅读(336) | 评论(0) | 转发(0) |