前言
重建索引适用于现有索引需要增加一个字段或修改已有字段类型,挺简单的,直接放码
1. 更新index template
首先更新index template,这样新建立的索引才会有新的/修改过的字段 PUT /_template/xxx
2. 建立新索引
PUT /xxx
复制代码
3. 移除新索引的别名(可选)
如果没有使用别名的话,这一步可以略过,但是强烈推荐使用它,比如现在这种场景,在新的索引重建完成前,旧索引仍然能够提供服务(代码中使用别名而非具体的索引名来操作)
POST /_aliases
{
"actions": [
{ "remove": { "index": "new", "alias": "xxx" }},
]}
复制代码
4. 重建索引
请注意,重建索引比较消耗资源,如果数据量很大,会花费很长时间
POST _reindex
{
"source": {
"index": "old"
},
"dest": {
"index": "new"
}}
复制代码
5. 转移别名(可选)
移除旧索引的别名并在新索引上添加别名,基本可以实现业务上无感知
POST /_aliases
{
"actions": [
{ "remove": { "index": "old", "alias": "xxx" }},
{ "add": { "index": "new", "alias": "xxx" }}
]}
复制代码