zoukankan      html  css  js  c++  java
  • 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,如图:

    参考修改脚本,kibana执行:

     1 # 1. 创建一个中间索引
     2 #创建索引
     3 PUT demo_metric_1/
     4 
     5 # 创建Mapping
     6 POST demo_metric_1/type/_mapping
     7 {  
     8     "type": {
     9       "properties": {        
    10         "log_time_date": {
    11           "type": "date",
    12           "format": "epoch_millis"
    13         },
    14         .....        
    15       }
    16     } 
    17 }
    18 
    19 
    20 # 2. 向中间索引备份源索引的数据
    21 
    22 # 重建索引
    23 POST _reindex
    24 {
    25   "source": {
    26     "index": "demo_metric"
    27   },
    28   "dest": {
    29     "index": "demo_metric_1"
    30   }
    31 }
    32 
    33 
    34 # 3.查询确认数据是否copy过去
    35 GET /demo_metric/type/_search
    36 
    37 GET /demo_metric_1/type/_search
    38 
    39 
    40 # 4.删除有问题的索引
    41 # 删除有问题的索引
    42 DELETE demo_metric
    43 
    44 
    45 # 5.重新创建同名的索引(★字段类型修改正确★)
    46 #创建索引
    47 PUT demo_metric/
    48 
    49 # 创建Mapping
    50 POST demo_metric/type/_mapping
    51 {  
    52     "type": {
    53       "properties": {        
    54         "log_time_date": {
    55           "type": "date",
    56           "format": "epoch_millis"
    57         },
    58         .....        
    59       }
    60     } 
    61 }
    62 
    63 
    64 # 6. 从中间索引还原到源索引的数据
    65 # 重建索引
    66 POST _reindex
    67 {
    68   "source": {
    69     "index": "demo_metric_1"
    70   },
    71   "dest": {
    72     "index": "demo_metric"
    73   }
    74 }
    75 
    76 
    77 # 7. 删除中间索引
    78 DELETE demo_metric_1
    感谢你的阅读,如果对你有帮助,请支持我!请点[推荐]
    如果有意见或建议,欢迎留言交流!
    欢迎转载,请保留出处,冰慧感谢你的关注与支持!
  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/huangxiufen/p/12461191.html
Copyright © 2011-2022 走看看