java序列化kr_巨坑:ElasticSearch 无法解析序列化的 GeoPoint 字段

当尝试将Java序列化的GeoPoint字段写入Elasticsearch时,遇到ElasticsearchParseException,原因是序列化后多了geohash字段。解决方法包括更换序列化工具为Gson或自定义Jackson的GeoPoint序列化和反序列化实现,以避免geohash字段的生成,从而成功将数据写入Elasticsearch的geo_point类型字段。
摘要由CSDN通过智能技术生成

往 ElasticSearch 写数据的时候报了个奇怪的错误:

Exception in thread "main" ElasticsearchParseException[field must be either lat/lon or geohash]

查看 ES 索引发现 location 字段是 geo_point 类型的,我在 Java 代码里对应字段使用的是 ES 提供的 GeoPoint 字段,感觉序列化之后写入 ES 不应该报错。

翻了 ES 的文档,geo_point 类型支持的数据格式有四种:

PUT my_index/my_type/1

{

"text": "Geo-point as an object",

"location": {

"lat": 41.12,

"lon": -71.34

}

}

PUT my_index/my_type/2

{

"text": "Geo-point as a string",

"location": "41.12,-71.34"

}

PUT my_index/my_type/3

{

"text": "Geo-point as a geohash",

"location": "drm3btev3e86"

}

PUT my_index/my_type/4

{

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值