由于ElasticSearch没有像mysql一样可以直接字段数据类型的方法,因此需要通过创建中间索引:data_index_1,备份数据到中间索引:data_index_1,然后删除原索引: data_index,重新创建正确数据类型索引:data_index,再把中间索引:data_index_1的数据备份到新创建索引:data_index。语句通过kibana的 dev_tools/console 执行。
操作步骤如下:
- 创建一个中间索引
- 向中间索引备份源索引的数据(mapping)
- 查询确认数据是否copy过去
- 删除有问题的索引
- 重新创建同名的索引(★字段类型修改正确★)
- 从中间索引还原到源索引的数据
-
删除中间索引
获取索引mapping,可通过到Kibana查看索引的mapping,如图:
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/