ES的mapping错误及修改

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

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

ES的mapping错误及修改_第1张图片

由于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,然后写到这里)

}

}

'

你可能感兴趣的:(ElasticSearch)