learn and grow up

es修改索引中mapping的类型

字数统计: 171阅读时长: 1 min
2020/02/02 Share

问题

es不允许对索引的type进行字段的删除和修改,只允许新增。

新增字段

1
2
3
4
5
6
7
8
PUT my_index/_mapping/my_type
{
"properties": {
"new_column": {
"type": "integer"
}
}
}

删除和修改的步骤比较麻烦,具体步骤如下:

  • 新增索引t2为想要的数据类型

  • 将t1 reindex到t2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    POST _reindex
    {
    "source": {
    "index": "t1"
    },
    "dest": {
    "index": "t2",
    "version_type": "external"
    },
    "script": {
    "source":"def w = ctx._source.remove('weight');ctx._source.weight=w;",
    "lang": "painless"
    }
    }
  • 数据reindex完成后删除t1

  • 设置索引t1为想要的数据类型

  • 将t2 reindex到t1,语法同步骤2

CATALOG
  1. 1. 问题
    1. 1.1. 新增字段
  2. 2. 删除和修改的步骤比较麻烦,具体步骤如下: