ElasticSearch修改索引字段类型 |
您所在的位置:网站首页 › elasticsearch索引 › ElasticSearch修改索引字段类型 |
一、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. 创建一个中间索引 2. 向中间索引备份源索引的数据(mapping) 3. 查询确认数据是否copy过去 4. 删除有问题的索引 5. 重新创建同名的索引(★字段类型修改正确★) 6. 从中间索引还原到源索引的数据 7. 删除中间索引 2、具体执行案例我这次遇到问题的es索引中没有旧数据,所以只要把字段类型错的索引删除,然后新建同名索引(字段类型改正确) 1)删除旧索引可以通过es脚本插件的删除按钮删除 需要 “新建索引”——>“添加mapping” 两步(我目前只知道这一种方法)。 第一步,先在脚本插件新建索引 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |