栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

如何修改Elasticsearch索引字段类型?

如何修改Elasticsearch索引字段类型?

前言

由于团队中的小伙伴,将ElasticSearch的keyword类型字段创建为Text类型,导致其他小伙伴通过match或term查询怎么查也查不到,所以需要去修改Elasticsearch索引字段类类型;但是ElasticSearch没有像关系型数据库一样可以直接修改字段数据类型的方法;

一、修改思路如下

1、获取源索引的数据(mapping) 并 创建临时索引:data_index_temp,
2、备份数据到临时索引:data_index_temp
3、删除原索引: data_index,
4、重新创建正确数据类型索引:data_index
5、再把临时索引:data_index_temp的数据备份到新创建索引 data_index。
以上语句通过kibana的 dev_tools/console 执行。

见图

二、操作步骤
    获取源索引的数据(mapping)创建一个临时索引,并复制源索引的mapping数据复制源索引的数据值临时索引,并查询确认数据是否复制过去删除有问题的索引重新创建同名的索引(注意:字段类型修改正确)从临时索引还原到源索引的数据删除临时索引

以下简单做个示例

1.获取源索引的数据(mapping)

代码如下(示例):

//获取源索引的mapping数据
GET data_index/_mapping

//返回示例如下
  {"data_index": {
    "mappings": {
      "cdp_doc": {
        "properties": {
	        "whyBuy": {
	          "type": "keyword"
	        },
	        "zipcode": {
	          "type": "keyword"
	        }
        }
      }
    }
  }
2. 创建一个临时索引,并使用源索引的mapping数据

代码如下(示例):

//# 创建Mapping
PUT data_index_temp
{
  "mappings": {
    "cdp_doc": {
      "properties": {
        "whyBuy": {
          "type": "keyword"
        },
        "zipcode": {
          "type": "keyword"
        }
      }
    }
  }
}
3. 复制源索引的数据至临时索引,并查询确认数据是否复制过去

代码如下(示例):

//# 创建Mapping
PUT data_index_temp
{
  "mappings": {
    "cdp_doc": {
      "properties": {
        "whyBuy": {
          "type": "keyword"
        },
        "zipcode": {
          "type": "keyword"
        }
      }
    }
  }
}
// 同步数据值临时索引
POST _reindex?refresh&wait_for_completion=false
{
  "conflicts": "proceed",
  "source": {
    "index": "data_index"
  },
  "dest": {
    "index": "data_index_temp",
    "op_type": "create"
  }
}

//查询确认数据是否复制过去
GET  data_index_temp/_search
{
  "query": {
    "term": {
    }
  }
}
4. 删除有问题的索引
//删除索引及数据
delete cdp_elelc_customer
5. 重新创建同名的索引(注意:字段类型修改正确)

步骤同第2步

6. 从临时索引还原至源索引的数据

步骤同第3步

7. 删除临时索引

步骤同第4步


总结
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号