锦囊2—修改已经存在了的ES数据结构

2023-10-26

修改已经存在了的ES数据结构

问题背景:

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

解决步骤:

1,创建一个中间索引

-- 字段类型同源索引
PUT /publish_process_bak
{
  "mappings": {
    "properties": {
      "dbEntityId": {
        "type": "long"
      },
      "esEntityId": {
        "type": "keyword"
      },
      "publishDatetime": {
        "type": "date",
        "format": "date_optional_time||epoch_millis"
      },
      "publishPeople": {
        "type": "keyword"
      }
    }
  }
}

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

POST _reindex
{
  "source": {
    "index": "publish_process"
  },
  "dest": {
    "index": "publish_process_bak"
  }
}

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

GET publish_process_bak/_search

4,删除原来有问题的索引

DELETE publish_process

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

-- 字段类型同源索引
PUT /publish_process
{
  "mappings": {
    "properties": {
      "dbEntityId": {
        "type": "long"
      },
      "esEntityId": {
        "type": "text"
      },
      "publishDatetime": {
        "type": "date",
        "format": "date_optional_time||epoch_millis"
      },
      "publishPeople": {
        "type": "text"
      }
    }
  }
}

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

POST _reindex
{
  "source": {
    "index": "publish_process_bak"
  },
  "dest": {
    "index": "publish_process"
  }
}

7,查询确认数据是否copy过去

GET publish_process/_search
GET publish_process/_mapping

8,删除中间索引

DELETE publish_process_bak

最后数据结构修改完成。

注意:如果数据量特别大,这种方式不知道是否合适,请慎重考虑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

锦囊2—修改已经存在了的ES数据结构 的相关文章

随机推荐

  • 用vscode写markdown的正确姿势

    写markdown一直没找到特别顺手的工具 这两天试了试vscode 被惊艳到到了 特此记录一下 1 安装vscode 之所以罗嗦一下安装 是因为安装版明显不如解压绿色版好用 特此标记一下 2 安装markdown插件 vscode默认是支
  • 机器学习——模型评估

    在学习得到的模型投放使用之前 通常需要对其进行性能评估 为此 需使用一个 测试集 testing set 来测试模型对新样本的泛化能力 然后以测试集上的 测试误差 tootino error 作为泛化误差的近似 我们假设测试集是从样本真实分
  • Shiro

    文章目录 资料 概念 基本功能 架构原理 登录认证 概念 流程 角色授权 概念 流程 代码 大致流程 shiro配置解读 ShiroConfig 登录 认证 授权 详细代码 pom login html index html UserCon
  • 表面缺陷检测的几种方法

    1 location blob feature 2 location differ feature 3 frequency domain spatial domain 4 photometric stereo 5 calibration f
  • python之迷你版Httpd服务器

    miniHttpd py import os sys platform import posixpath import BaseHTTPServer from SocketServer import ThreadingMixIn impor
  • 软件测试的心理学和经济学、软件测试的原则

    软件测试的艺术 读书笔记 第二章 第二章 软件测试的心理学和经济学 前言 软件测试是一项技术性工作 但同时涉及经济学和人类心理学的一些重要因素 在理想情况下 我们会测试程序的所有可能执行情况 而在大多数情况下 这几乎是不可能的 即使是一个简
  • 荔枝派Zero(全志V3S)基于QT实现在LCD显示图片

    文章目录 前言 一 配置 buildroot 及编译 二 写 QT 代码 三 编译可执行文件 四 拷贝到 SD 卡 五 上板子测试 六 资源自取 前言 有这样一个需求 通过配置 QT 在 linux 下实现显示我所想要显示的图片 实现的方式
  • 首页生成静态的html,关于网站生成静态html文件的两种方案思考

    关于网站生成静态文件有利有弊 通常来讲交互性的站点不太适合静态化 如社交网站 论坛之类的站点等等 如果以资讯内容展示为主 生成静态文件能够很好的提高服务器吞吐量 下面提供两种生成静态文件的方案 分析下其中的利和弊 1 后台增加生成静态页面功
  • hexo博客配置

    title hexo博客配置 cover img 2 jpg categories HEXO博客 1 网站图标更换 themes hexo theme Annie layout partial head ejs 我中间这个hexo them
  • NUC980开源项目8-官方Uboot编译

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • linux XFRM整体框架简单分析

    author jonathan 本文档的CopyRight归jonathan所有 可自由转载 转载时请保持文档的完整性 Linux 的 XFRM框架多简单阿 6年前整理过 到现在还记得基本原理 说明xfrm设计的是多么简单明了 不过网上都是
  • Selenium被禁止的解决方法

    selenium被禁止的解决方法 遇到问题 selenium做爬虫能解决很多反爬问题 但是selenium也有很多特征可以被识别 比如用selenium驱动浏览器后window navigator webdriver值是true 而正常运行
  • python print format_Python format()格式化输出方法详解

    前面章节介绍了如何使用 操作符对各种类型的数据进行格式化输出 这是早期 Python 提供的方法 自 Python 2 6 版本开始 字符串类型 str 提供了 format 方法对字符串进行格式化 本节就来学习此方法 format 方法的
  • canvas详解03-绘制图像和视频

    canvas 更有意思的一项特性就是图像操作能力 可以用于动态的图像合成或者作为图形的背景 以及游戏界面 Sprites 等等 浏览器支持的任意格式的外部图片都可以使用 比如 PNG GIF 或者 JPEG 你甚至可以将同一个页面中其他 c
  • Tensorflow和anaconda的历史版本镜像,清华源镜像下载地址

    清华源镜像下载地址 https pypi tuna tsinghua edu cn simple tensorflow gpu tensorflow和cuda版本对应关系见该博客https blog csdn net qq 27825451
  • HCIA综合实验(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识简介 网络技能树技能树https edu csdn net skill network utm source AI act network catego
  • android 功能模块之通讯模块

    Android通讯录开发之实现全选 反选功能 2014年1月15日 实现全选 反选不是什么难的事情 就只是用另外一个数据结构来存储被选中的状态 通过刷新列表来更新列表的显示状态 下面是实现效果 定义一个散列表来存储选中状态 java vie
  • 电机PID调试

    电机PID调试 电机PID调试 一 直流电机原理与TB6612 1 1 电机原理 1 2 减速器作用 1 3 电机实物接线图 1 4 电机控制芯片 二 编码器使用以及测速原理 2 1 编码器原理 2 1 编码器接线 2 1 编码器软件四倍
  • Matlab——m_map指南(2)

    3 海岸线和深度测量 3 1 1 海岸线选项 m coast line optional line arguments m coast line optional line arguments m map 的海岸线数据可以使用m coast
  • 锦囊2—修改已经存在了的ES数据结构

    修改已经存在了的ES数据结构 问题背景 由于ElasticSearch没有像mysql一样可以直接字段数据类型的方法 因此需要通过创建中间索引 data index 1 备份数据到中间索引 data index 1 然后删除原索引 data