我的个人博客:逐步前行STEP

首先,es不支持直接更改mappinng,所以,更改 mapping 实质上是重建索引。
操作步骤如下:
1、为当前这个索引old_index设置一个别名my_index

curl -XPOST localhost:9200/_aliases -d '  
{  
    "actions": [  
        { "add": {  
            "alias": "my_index",  
            "index": "old_index"  
        }}  
    ]  
}  '

2、通过别名my_inndex访问索引old_index
3、重建一个新的索引new_index,在此时使用需要的字段属性;

curl -XPUT localhost:9200/new_index
{
    "mappings": {
        "doc": {
            "properties": {
                "id": {
                    "type": "long"
                },
                "user_id": {
                    "type": "long"
                }
            }
        }
    },
    "settings": {
        "index": {
            "number_of_shards": "5",
            "number_of_replicas": "1"
        }
    }
}

4、迁移旧的索引old_index数据到新的索引new_index上;

curl -XPOST localhost:9200/_reindex
{
    "source":{
        "index":"old_index"
    },
    "dest":{
        "index":"new_index"
    }
}

5、为索引new_index设置一个别名为my_index ,同时删除该别名对旧索引old_index的指向:

curl -XPOST localhost:9200/_aliases -d '  
{  
    "actions": [  
        { "remove": {  
            "alias": "my_index",  
            "index": "old_index"  
        }},  
        { "add": {  
            "alias": "my_index",  
            "index": "new_index"  
        }}  
    ]  
}  '

6、删除索引old_index

curl -XDELETE localhost:9200/old_index  

标签: none

添加新评论