Elasticsearch 新旧索引数据迁移(_reindex)

@羲凡——只为了更好的活着

Elasticsearch 新旧索引数据迁移(_reindex)

举个例子,在输入“1992-02-27”这样格式的数据,es会把他默认为是date数据类型,但是有时候我们希望它是text类型,在原索引中已经有数据的情况下该如何操作。

1.创建原索引
PUT /aaron_index/aaron_type/1
{
  "name":"张辽","age":27,"content":"1992-02-27"
}
PUT /aaron_index/aaron_type/2
{
  "name":"曹阿瞒","age":28,"content":"1991-02-19"
}
2.创建新索引
PUT /aaron_index_new
{
  "mappings": {
    "aaron_type":{
      "properties":{
        "content":{"type":"text"},
        "name":{"type":"text"}
      }
    }
  }
}
PUT /aaron_index_new/aaron_type/2
{
  "name":"曹操","content":"1991-02-19,28岁"
}
3.查看两个索引的mapping类型
GET /aaron_index/_mapping
GET /aaron_index_new/_mapping
4.将原索引全部放入新索引中,_id冲突的以原索引为准

虽然新索引中只有两个字段(原索引中有三个),也会将原索引中的数据插入新索引中,并覆盖_id相同的数据。

POST _reindex
{
  "source": {"index": "aaron_index"},
  "dest": {"index": "aaron_index_new"}
}
5.将原索引放入新索引中,_id冲突的以新索引为准

虽然新索引中只有两个字段(原索引中有三个),也会将原索引中的数据插入新索引中,但不覆盖_id相同的数据。

POST _reindex
{
  "conflicts": "proceed",
  "source": {"index": "aaron_index"},
  "dest": {"index": "aaron_index_new","op_type": "create"}
}

====================================================================

@羲凡——只为了更好的活着

若对博客中有任何问题,欢迎留言交流

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值