ElasticSearch修改索引字段类型

news2024/9/30 15:22:48

一、Es报MapperParsingException异常

线上功能报错,一看日志是往es中添加数据报错,错误日志如下:

org.elasticsearch.index.mapper.MapperParsingException: failed to parse field [categoryId] of type [integer] in document with id '1628993540560302081'
...
Caused by: java.io.IOException: Numeric value (1621025777837514753) out of range of int

说是数据中有个字段类型转换错误,一查es脚本工具,果然生产es索引中categoryId这个字段是integer类型,而实际是long类型。

补充:es查询索引类型查询方法

get请求
http://地址/索引/类型/_mapping
无需参数

在这里插入图片描述

二、ES修改索引字段类型

1、方法简述

es不能直接修改索引字段类型,需要删除调新建,具体方法如下

1. 创建一个中间索引
2. 向中间索引备份源索引的数据(mapping)
3. 查询确认数据是否copy过去
4. 删除有问题的索引
5. 重新创建同名的索引(★字段类型修改正确★)
6. 从中间索引还原到源索引的数据
7. 删除中间索引

2、具体执行案例

我这次遇到问题的es索引中没有旧数据,所以只要把字段类型错的索引删除,然后新建同名索引(字段类型改正确)

1)删除旧索引

可以通过es脚本插件的删除按钮删除
在这里插入图片描述
也可以发请求删除

补充:es删除索引方法

delete请求
http://地址/索引

在这里插入图片描述

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

补充:es创建索引方法

需要 “新建索引”——>“添加mapping” 两步(我目前只知道这一种方法)。

第一步,先在脚本插件新建索引
在这里插入图片描述
第二步,为新建索引创建Mapping(即发设置字段参数的请求)
在这里插入图片描述
因为参数大部分与删除前的索引相同,只有个别地方需要修改;所以,我在删除旧索引之前,复制了mapping中的参数、做了一点修改,然后在设置新索引mapping这里粘贴上去即可。

3、因为我的旧索引中没有数据,所以可以直接删除、新增;下面介绍一下需要备份参数的具体方法(就是一种说的)

# 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件技术知识库必备的功能清单及注意事项!

文档是一个迭代过程。它可能需要根据客户反馈进行改进,或者可能需要折射文档中已包含的某些内容。知识库可以包括客户的常见问题或对解决方案的更多参考,这些解决方案可能需要包括这些解决方案,以提高效率、生产力并降低公司成本,…

百趣代谢组学分享—揭示水稻“生长-防御”平衡调控机制!

湖南农业大学科研团队揭示水稻“生长—防御”平衡调控机制! 文章标题:Rice cellulose synthase-like protein OsCSLD4 coordinates the trade-off between plant growth and defense 发表期刊:Frontiers in Plant Science 影响因子&#x…

【个人总结】超详细Neo4j安装下载

【个人总结】超详细Neo4j安装下载一、下载1.1 Jdk下载1.2 Neo4j下载:二、安装配置2.1 解压2.2 配置三、启动Neo4j一、下载 1.1 Jdk下载 下载neo4j之前,需要下载jdk,这里默认已经下载过jdk,,若未下载可参考之前文章:h…

17.标准库特殊设施

文章目录标准库特殊设施17.1tuple类型17.1.1定义和初始化tuple访问tuple的成员关系和相等运算符17.1.2使用tuple返回多个值17.2bitset类型(后续需要时再详细了解)17.3正则表达式17.4随机数bernoulli_distribution类17.5IO库再探标准库特殊设施 17.1tuple类型 tuple(定义在tupl…

Spark工作原理

1)Spark工作原理: 首先看中间是一个Spark集群,可以理解为是Spark的 standalone集群,集群中有6个节点 左边是Spark的客户端节点,这个节点主要负责向Spark集群提交任务,假设在这里我们向Spark集群提交了一个任…

周赛334(前缀和、贪心+双指针、Dijkstra求最短路径、二分答案)

文章目录[6369. 左右元素和的差值](https://leetcode.cn/problems/left-and-right-sum-differences/)前缀和[6368. 找出字符串的可整除数组](https://leetcode.cn/problems/find-the-divisibility-array-of-a-string/)超长整数如何取余?[6367. 求出最多标记下标](ht…

9.3 IGMPv3

实验目的 熟悉IGMPv3的应用场景掌握IGMPv3的配置方法实验拓扑 实验拓扑如图9-22所示: 图9-22:IGMPv3 实验步骤 (1)配置IP地址 MCS1的配置 MCS1的IP地址配置如图9-23所示: 图9-23:配置MCS1的IP地址 MCS2…

结构体字节对齐、偏移量

复习下struct的大小、成员偏移量offsetof,说下我的理解: 64位下默认对齐数default8原则1:struct中每一个成员变量tmp的对齐数realmin{default,tmp} struct Student {int num;//0char name[8];double score; } stu; 这个结构体stu中&#x…

阿里前端二面经典手写面试题汇总

实现类的继承 实现类的继承-简版 类的继承在几年前是重点内容,有n种继承方式各有优劣,es6普及后越来越不重要,那么多种写法有点『回字有四样写法』的意思,如果还想深入理解的去看红宝书即可,我们目前只实现一种最理想…

rollup环境配置

VUE2.x源码学习笔记 1. rollup环境配置 首先在VScode中新建文件夹vue_sc,然后终端打开定位到打开的文件夹,输入“npm init -y”初始化配置项,运行成功之后文件夹新增package.json文件 继续在终端运行"npm install babel/preset-env ba…

浅析Tomcat架构上的Valve内存马(内存马系列篇十一)

写在前面 这篇也是在Tomcat容器上面构造的内存马(收回之前说的不搞Tomcat了),这是建立在Tomcat的管道上面做文章的一个内存马的实现方式。这是内存马系列的第十一篇文章了。 前置 什么是Pipeline-Valve管道? 根据前面Tomcat架构的相关知识&#xff0…

腾讯云卖向“有币”区块链

曾经坚决“不涉币”的腾讯云将业务延伸向“有币区块链”。 在首届 Web3 全球峰会“腾讯云Web3构建日”上,腾讯云宣布进军Web3,并公开了与Ankr、Avalanche、Scroll和Sui 四个原生区块链项目的合作,其中前两个项目都发行了加密货币&#xff0c…

关于Java中的静态块讲解

文章目录类的加载特性与时机类加载的特性类加载的时机static的三个常用地方什么是静态块?特点写法静态块 static怎么用?类的加载特性与时机 在介绍static之前可以先看看类的相关 类加载的特性 在JVM的生命周期里,每个类只会被加载一次。 类加载的原则&#xf…

老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!

一、前言 作为网络工程师或者运维工程师,traceroute命令不会陌生,它的作用类似于ping命令,用于诊断网络的连通性,不过traceroute命令输出的命令会比ping命令丰富的多,可以跟踪从源系统到目标系统的路径。 很多工程师…

jsp城乡信息管理系统

技术:Java、JSP等摘要:管理信息系统(Management System,简称MS)是一个由管理人员和计算机组成的用以进行信息的收集、传输、加工、存储、维护和使用的系统。它是一门综合了管理科学,系统理论,计…

WSL2:开发环境安装

写在前面 主要是记录一下如何安装和搭建基于WSL2的开发环境;参考博文:搭建优雅的Windows终端 Windows terminalscoopstarship; 一、安装WSL2 以管理员身份运行CMD,执行以下命令即可WSL和Linux的默认Ubuntu发行版: …

【聚类】谱聚类解读、代码示例

【聚类】谱聚类详解、代码示例 文章目录【聚类】谱聚类详解、代码示例1. 介绍2. 方法解读2.1 先验知识2.1.1 无向权重图2.1.2 拉普拉斯矩阵2.2 构建图(第一步)2.2.1 ϵ\epsilonϵ 邻近法2.2.2 k 近邻法2.2.3 全连接法2.3 切图(第二步&#xf…

基于jeecgboot的flowable的H5版本在演示系统发布

目前在NBCIO 亿事达企业管理平台上发布了H5的在线演示系统,欢迎大家批评指正。 在nbcio-vue nbcio-vue: NBCIO 亿事达企业管理平台前端代码,基于ant-design-vue-jeecg的前端版本: 3.0.0代码和和flowable6.7.2,初步完成了集流程设…

【Linux】安装MySQL

目录 1.检测当前系统是否安装过MySQL相关数据库 2. 卸载现有的MySQL数据库 3.上传解压 4.顺序安装rpm包 5.启动MySQL 6.查看临时密码 7.登录MySQL 8.开放端口 1.检测当前系统是否安装过MySQL相关数据库 需要通过rpm相关指令,来查询当前系统中是否存在已安…

无法将“django-admin”项识别为cmdlet,函数,脚本文件或可运行程序的名称问题

无法将“django admin”项识别为cmdlet,函数,脚本文件或可运行程序的名称问题 小提示:首先检查一下有没有拼写错误!!!没有的话请继续 我们要知道django装到哪里去了 pip show django 注意:3.0…