ES地理位置检索踩坑日记

前言

保存经纬度、地理位置可用字段类型geo_point定义location字段、还有GeoHash类型

ES提供了三种不同的索引和数据展现格式

ES提供了三种不同的索引和数据展现格式
(1)对象:
{
“location”: {
“lon”: 127.25456,
“lat”: 25.236
},
“id”: “10001”
}
(2)数组:
{
“location”: [
127.25456,
25.236
],
“id”: “10001”}
(3)字符串
{
“location”: “25.236,127.25456”,
“id”: “10001”
}

//对应的代码查询:
QueryBuilders.geoDistanceQuery("字段").point(56.3, 43.12).distance(10,DistanceUnit.KIOMETERS);

//2.经纬度查询的各种形式:
//2.1 圆形区域经纬度:  QueryBuilders.geoDistanceQuery("location").point(lat,lon).distance(rad,DistanceUnit.METERS);
//2.2 矩形
    QueryBuilders.geoBoundingBoxQuery("location").setCorners(top,left,bottom,right);
//2.3 多边形
    list.add(new GeoPoint(lat,lon));
    QueryBuilders.geoPolygonQuery("location",list);

注意

使用字符串存储时,顺序是“纬度,经度”,使用数组存储时,顺序是“经度,纬度”。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值