es修改索引字段类型

由于ElasticSearch没有像mysql一样可以直接字段数据类型的方法,因此需要通过创建中间索引:data_index_1,备份数据到中间索引:data_index_1,然后删除原索引: data_index,重新创建正确数据类型索引:data_index,再把中间索引:data_index_1的数据备份到新创建索引:data_index。语句通过kibana的 dev_tools/console 执行。

操作步骤如下:

  1. 创建一个中间索引
  2. 向中间索引备份源索引的数据(mapping)
  3. 查询确认数据是否copy过去
  4. 删除有问题的索引
  5. 重新创建同名的索引(★字段类型修改正确★)
  6. 从中间索引还原到源索引的数据
  7. 删除中间索引
    获取索引mapping,可通过到Kibana查看索引的mapping,如图:


    image.png

1. 创建一个中间索引

创建索引

PUT demo_metric_1/

创建Mapping

POST demo_metric_1/type/_mapping
{
"type": {
"properties": {
"log_time_date": {
"type": "date",
"format": "epoch_millis"
},
.....
}
}
}

2. 向中间索引备份源索引的数据

重建索引

POST _reindex
{
"source": {
"index": "demo_metric"
},
"dest": {
"index": "demo_metric_1"
}
}

3.查询确认数据是否copy过去

GET /demo_metric/type/_search

GET /demo_metric_1/type/_search

4.删除有问题的索引

删除有问题的索引

DELETE demo_metric

5.重新创建同名的索引(★字段类型修改正确★)

创建索引

PUT demo_metric/

创建Mapping

POST demo_metric/type/_mapping
{
"type": {
"properties": {
"log_time_date": {
"type": "date",
"format": "epoch_millis"
},
.....
}
}
}

6. 从中间索引还原到源索引的数据

重建索引

POST _reindex
{
"source": {
"index": "demo_metric_1"
},
"dest": {
"index": "demo_metric"
}
}

7. 删除中间索引

DELETE demo_metric_1

原文链接:https://blog.csdn.net/wuqixiufen2/article/details/104793172/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容