ElasticSearch经纬度相关查询
1、最近点查询
官方地址
POST /index/_search
{"sort": [{"_geo_distance": {"location": { "lat": 33,"lon": 111},"order": "asc","unit": "km", "distance_type": "plane" }}]
}
java代码
import io.searchbox.client.JestClient;
import io.searchbox.core.Search;
import io.searchbox.core.SearchResult;
import org.elasticsearch.common.unit.DistanceUnit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.GeoDistanceSortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();GeoDistanceSortBuilder sortBuilder = SortBuilders.geoDistanceSort("location", "").point(33, 111).unit(DistanceUnit.METERS).order(SortOrder.ASC);searchSourceBuilder.sort(sortBuilder);searchSourceBuilder.from(0);searchSourceBuilder.size(1);String query = searchSourceBuilder.toString();Search search = new Search.Builder(query).addIndex(LccWgsModel.ESINDEX).build();SearchResult result = jestClient.execute(search);List<LccWgsModel> dataList = result.getSourceAsObjectList(LccWgsModel.class, true);System.out.println(dataList.size());System.out.println(new Gson().toJson(dataList));
报错的话直接query字符串查询
String query = "{\"from\":0,\"size\":1,\n" +" \"sort\": [\n" +" {\n" +" \"_geo_distance\": {\n" +" \"location\": [\n" +" {\n" +" \"lat\": 33,\n" +" \"lon\": 111\n" +" }\n" +" ],\n" +" \"unit\": \"km\",\n" +" \"distance_type\": \"plane\",\n" +" \"order\": \"asc\",\n" +" \"validation_method\": \"STRICT\"\n" +" }\n" +" }\n" +" ]\n" +"}";
2、圆形和圆环查询
官方地址
GET /attractions/restaurant/_search
{"query": {"geo_distance": {"distance": 10000,"location": {"lat": 24.46,"lon": 118.1}}}
}
匹配那些距离中心点大于等于 1km 而小于 2km 的位置
GET /attractions/restaurant/_search
{"query": {"filtered": {"filter": {"geo_distance_range": {"gte": "1km", "lt": "2km", "location": {"lat": 40.715,"lon": -73.988}}}}}
}
ElasticSearch经纬度相关查询相关推荐
- Elasticsearch Java API 分组、聚合、嵌套相关查询
Elasticsearch Java API 分组.聚合.嵌套相关查询 翼支付监控系统正使用es做后端存储,这边我们是将日志计算处理过后的数据通过kafka储存到es.选择用es作为数据储存端是考虑到 ...
- ES(Elasticsearch)基本查询总结(含docker安装,python操作)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 官网:https://www.elastic.co/guide/index.html 搜索语法:https://www.elastic.co/guid ...
- Elasticsearch实战——function_score 查询详解
Elasticsearch实战--function_score 查询详解 文章目录 Elasticsearch实战--function_score 查询详解 1. function_score简介 2 ...
- 02.elasticsearch bucket aggregation查询
文章目录 1. bucket aggregation 查询类型概览 2. 数据准备 3. 使用样例 1. Terms Aggregation: 1. 普通的terms agg 2. 嵌套一个metri ...
- 【Spring Data ElasticSearch】高级查询,聚合
[Spring Data ElasticSearch]高级查询,聚合 1. 高级查询 1.1 基本查询 1.2 自定义查询 1.3 分页查询 1.4 排序 2. 聚合 2.1 聚合为桶 2.2 嵌套聚 ...
- Elasticsearch 5: 聚集查询
目录 1. 聚集查询 2. 指标聚集 2.1 平均值聚集 2.1.1 avg 聚集 2.2 计数聚集与极值聚集 2.2.1 计数聚集 2.2.2 极值聚集 2.3 统计聚集 2.3.1 stats 聚 ...
- ElasticSearch: Search API 查询用法详解
Search API ElasticSearch 为了搜索提供了一些原始的 API,主要是有两大类 URL Search URL Search 类似 http 的get请求,是将请求参数放到 URL ...
- mysql 分页 去重_『备忘录』elasticsearch 去重分页查询
一开始数据结构设计的很复杂,又是父子关系又是嵌套关系,结果发现不能通过简单的查询得到想要的结果:比如一个商店只出现一件符合条件的商品,弄得查询语句就变成这样了 curl -XPOST http://l ...
- Elasticsearch索引和查询性能调优的21条建议【下】
Elasticsearch是一款流行的分布式开源搜索和数据分析引擎,具备高性能.易扩展.容错性强等特点.它强化了Apache Lucene的搜索能力,把掌控海量数据索引和查询的方式提升到一个新的层次. ...
最新文章
- linux进程间通信:system V 信号量
- 操作系统学习:实模式进入保护模式
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
- 软工随堂练 找出和值最小的子数组 尹亚男 赵静娜
- CNDO-INTGRL-SS-AINTGS-斯莱特轨道指数
- vscode插件的开发与发布流程
- 爱情是一出未经排练的戏
- mac上的mysql管理工具sequel pro
- (转载)今天的不在家呢的即时通讯
- 操作系统之内存管理:3、基本分页存储管理
- 双层玻璃matlab,数学建模-双层玻璃窗.doc
- javagui点击按钮弹出另一个界面_界面设计如何提高转化率和易用性(10则)
- leetcode 栈 二叉树的前向遍历
- 计算机画图调整画笔粗细,【2人回答】画图里画笔怎么加粗-3D溜溜网
- 计算机实验三——Rdt协议对比
- Android:一个妹zhi的学习之路_心得体会
- 【C语言】形参实参以及参数传递
- 试试看:把电脑时间调到2099年12月31号之后,会发生什么
- 展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现
- HBase NoSQL数据库详解
热门文章
- 在线练习毛笔书法或水墨画的html5网站,友基墨客M-Brush官方版
- 刷脸支付商用之火真正出现燎原的苗头
- CPU load高但CPU usage低问题排查
- 将边缘云装进胶囊数据中心需要几步?
- 时间格式的转换 例如:(2021-05-10 14:20:43) 转为( 2021年5月10日 14时20分43秒)
- 领域驱动设计在美团点评业务系统的实践
- 10 款优雅的 Go 语言开发工具
- 佐助题库1000:1+2+3+N
- 开发android 输入法,Android输入法开发实例解析 Android开发技术
- 调查显示台湾1月消费者信心指数终止“三连跌”