Elasticsearch怎么修改索引字段类型?

    由于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,如图:Elasticsearch怎么修改索引字段类型?

 

参考修改脚本,kibana执行:

 # 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
 
感谢你的阅读,如果对你有帮助,请支持我!请点[推荐]
如果有意见或建议,欢迎留言交流!
欢迎转载,请保留出处,冰慧感谢你的关注与支持!

 

上一篇:OSPF(2)


下一篇:Windows双网卡配置同时使用内外网