在距某个geopoint的给定距离内匹配“geo_point”和“geo_shape”值。

例如:

假设以下文档已编制索引:

PUT /my_locations
{"mappings": {"properties": {"pin": {"properties": {"location": {"type": "geo_point"}}}}}
}PUT /my_locations/_doc/1
{"pin": {"location": {"lat": 40.12,"lon": -71.34}}
}PUT /my_geoshapes
{"mappings": {"properties": {"pin": {"properties": {"location": {"type": "geo_shape"}}}}}
}PUT /my_geoshapes/_doc/1
{"pin": {"location": {"type" : "polygon","coordinates" : [[[13.0 ,51.5], [15.0, 51.5], [15.0, 54.0], [13.0, 54.0], [13.0 ,51.5]]]}}
}

使用geo_distance过滤器匹配另一个geopoint指定距离内的geo_point值:

GET /my_locations/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "200km","pin.location": {"lat": 40,"lon": -70}}}}}
}

使用相同的过滤器匹配给定距离内的geo_shape:

GET my_geoshapes/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "200km","pin.location": {"lat": 40,"lon": -70}}}}}
}

要同时匹配geo_point和geo_shape值,请搜索两个索引:

GET my_locations,my_geoshapes/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "200km","pin.location": {"lat": 40,"lon": -70}}}}}
}

Accepted Formats

与geo_point类型大致相同,可以接受geo point的不同表示方式,过滤器也可以接受它:

Lat Lon As Properties

GET /my_locations/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "12km","pin.location": {"lat": 40,"lon": -70}}}}}
}

Lat Lon As Array

[lon,lat]格式,注意,此处lon/lat的顺序,以符合GeoJSON。

GET /my_locations/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "12km","pin.location": [ -70, 40 ]}}}}
}

Lat Lon As String

格式为lat,lon。

GET /my_locations/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "12km","pin.location": "40,-70"}}}}
}

Geohash

GET /my_locations/_search
{"query": {"bool": {"must": {"match_all": {}},"filter": {"geo_distance": {"distance": "12km","pin.location": "drm3btev3e86"}}}}
}

Elasticsearch——Geo-distance查询相关推荐

  1. Elasticsearch:Geo Point 和 Geo Shape 查询解释

    在本文中,我们将了解 Elasticsearch 的地理查询.如何设置映射和索引,并提供一些示例来说明如何查询数据. Elasticsearch 中的地理数据 Elasticsearch 允许你以两种 ...

  2. 02.elasticsearch bucket aggregation查询

    文章目录 1. bucket aggregation 查询类型概览 2. 数据准备 3. 使用样例 1. Terms Aggregation: 1. 普通的terms agg 2. 嵌套一个metri ...

  3. Elasticsearch实战——地理位置查询

    Elasticsearch实战--地理位置查询 文章目录 Elasticsearch实战--地理位置查询 1. 半径查询(geo_distance query) 2. 指定矩形内的查询(geo_bou ...

  4. 01.elasticsearch metric aggregation 查询

    文章目录 1. 数据准备 2. metric aggregation分类 3.使用样例 1 . Avg Aggregation : 求query出来的结果的average 值 2 . Weighted ...

  5. ES(Elasticsearch)基本查询总结(含docker安装,python操作)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 官网:https://www.elastic.co/guide/index.html 搜索语法:https://www.elastic.co/guid ...

  6. elasticsearch geo DSL 和API对比学习-矩形/多边形/距离/距离排序/距离分段聚合/geo_shape内含-相交-相离

    直接上代码,包括多种geo相关查询===>>>矩形/多边形/距离/距离排序/距离分段聚合/geo_shape内含-相交-相离 @RunWith(SpringRunner.class) ...

  7. 03.elasticsearch pipeline aggregation查询

    文章目录 1. pipeline aggregation查询语法 1. 符号代表 2. 聚合层级 2. pipeline aggregation 查询类型概览 1. sibling aggregati ...

  8. java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询

    1.前缀查询(prefix) //prefix前缀查询 @Testpublic void test15() throws UnknownHostException {//1.指定es集群 cluste ...

  9. 【Elasticsearch】解决Elasticsearch HTTP方式查询报SocketTimeoutException的问题 Connection reset by peer

    1.概述 转载:解决Elasticsearch HTTP方式查询报SocketTimeoutException的问题(待验证) 这个问题,和这个问题很像.参考 [es]ES RestHighLevel ...

  10. 【Elasticsearch】 Elasticsearch 多字段查询 best_fields、most_fields、cross_fields,傻傻分不清楚?

    1.概述 转载:Elasticsearch 多字段查询 best_fields.most_fields.cross_fields,傻傻分不清楚? 1.1 题记 Multi-match query 的目 ...

最新文章

  1. 《机器学习实战》配套代码下载
  2. 苹果明年有望推出15英寸版MacBook Air
  3. php星期和时间获取
  4. 移动开发之手势与双指缩放
  5. Netty短时间内大量写消息导致的内存问题
  6. CDMA2000中的Walsh码,PN码,短码序列的初相位偏置(PN OFFSET)之間的差別與關係(1)
  7. android 谷歌地图离线访问,Android版谷歌地图更新 新增离线浏览功能(图)
  8. 三星线刷工具Odin3_V3.12.7
  9. java面试 socket_java网络编程面试题
  10. js / vue 批量打印二维码图片、PDF、文档
  11. 访问任何dns都超时_如何使用动态DNS从任何地方轻松访问您的家庭网络
  12. 用Javascript实现关闭广告案例
  13. 谈软件系统的标准化和产品化
  14. 计算机ab级ppt,计算机二级MS_Office考试PPT题型汇总附答案
  15. Redis: Redis的主从复制(Master/Slave),一主二仆,薪火相传,反客为主,哨兵模式sentinel
  16. Java 定义一个抽象类—水果,其中包括getWeight()方法,创建若干水果对象存放在一个水果类型的数组中,输出数组中所有水果的类型、重量。
  17. 静态库路径配置g2o
  18. 分享我的公众号留言功能迁移成功的故事
  19. 计算机在识字教学中的应用,运用多媒体教学,提高识字效率
  20. 光学接触角计算机软件,悬滴法表界面张力仪及接触角仪

热门文章

  1. 6.3 图解BERT模型:从零开始构建BERT
  2. 蓝桥杯 PREV-281 时间显示【第十二届】【省赛】
  3. 高频电子线路:小功率调幅发射机multisim设计学习记录
  4. 实现米思齐按键控制LED
  5. JavaScript零基础入门 3:javascript运算符有哪些
  6. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xff in position 0: invalid start byte ,mac
  7. 甲骨文华育兴业-青柠成长计划
  8. matlab怎么增加图例,matlab中legend函数在添加图例时的使用方法 - matlab资源网
  9. 《地理信息系统导论》第3章 矢量数据模型 复习题
  10. Aed电子文档与无纸化办公