ES的mapping错误及修改

往ES写入数据时若没有创建mapping,es会根据插入数据的类型自动匹配mapping,当有类似设备号这类的长数字类型是,ES会将其映射成long,但是如果后续写入的数据中,有数据的该字段超过long的长度范围,写入程序会报错:

可以通过命令curl -XDELETE "http://host:port/urmtpinf"来查看 urmtpinf这个index的mapping信息,发现其中确实有报错字段为long

由于ES无法修改index的mapping,因此只能删除index后重建,并指定mapping,原先写入index的数据需要重新写入,具体操作如下:

1.删除索引

curl -XDELETE "http://host:porturmtpinf"

2.重新建立该索引

curl -XPUT "http://host:port/urmtpinf"

3.给该索引添加tupe和mapping

curl -XPOST "http://host:port/urmtpinf/doc/_mapping?pretty" -d '

"doc":{

    {"properties":

(将原来查询到的mapping的properties中,long替换成text,然后写到这里)

}

}

'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值