elk笔记13--Queries-geo queries

  • 1 geo查询简介
  • 2 geo 查询案例
  • 3 说明

1 geo查询简介

geo queries(地理位置查询) 支持2类geo数据,分别为geo_point 和geo_shape 2中类型;其中, gep_points 支持 lat/lon 对, geo_shape 支持点、线、圆、多边形和多个多边形等;
共对应四种查询,分别为 geo_bounding_box、geo_distance、geo_polygon 、geo_shape 。本文部分数据直接使用 kibana_sample_data_ecommerce 中的数据,具体案例如下:

Elasticsearch supports two types of geo data: geo_point fields which support lat/lon pairs, and geo_shape fields, which support points, lines, circles, polygons, multi-polygons, etc.

2 geo 查询案例

  1. 使用geo_bounding_box 和top_left、bottom_right 搜索左上和右下区域内的数据

     GET kibana_sample_data_ecommerce/_search{"query": {"geo_bounding_box" : {"geoip.location" : {"top_left" : {"lat" : 40.73,"lon" : -74.1},"bottom_right" : {"lat" : 40.01,"lon" : -71.12}}}}}
    也可以使用这种方式搜索"geoip.location" : {"top_left" : [-74.1, 40.73],"bottom_right" : [-71.12, 40.01]}或者下面这种方式"geoip.location" : {"top_left" : "40.73, -74.1","bottom_right" : "40.01, -71.12"}
    

    结果:

  2. 使用geo_distance 搜索特定地点指定距离内的数据

    GET kibana_sample_data_ecommerce/_search
    {"query": {"geo_distance" : {"distance": "200km","geoip.location" : {"lat" : 40.6,"lon" : -73}}}
    }
    
  3. 使用 geo_polygon 搜索指定多边形区域内的数据

    GET kibana_sample_data_ecommerce/_search
    {"query": {"geo_polygon" : {"geoip.location" : {"points" : [{"lat" : 30, "lon" : -70},{"lat" : 60, "lon" : -20},{"lat" : 45, "lon" : -90}] }}}
    }
    也可以使用
    "points" : [[30,-70],[60,-20],[45,-90]
    ]
    或者使用"points" : ["30,-70","60,-20","45,-90"
    ]
    
  4. 通过 geo_shape 来搜索某个范围内的数据
    该方法与前3个不同之处在于:需要设置mapping类型为geo_shape, 而前三个mapping类型为geo_point

    PUT /example
    {"mappings": {"properties": {"location": {"type": "geo_shape"}}}
    }POST /example/_doc?refresh
    {"name": "Wind & Wetter, Berlin, Germany","location": {"type": "point","coordinates": [13.400544, 52.530286]}
    }GET example/_search
    {"query": {"geo_shape": {"location": {"shape": {"type": "envelope","coordinates" : [[13.0, 53.0], [14.0, 52.0]]},"relation": "within"}}}
    }
    
  5. 统计不同范围段内的数据
    通过aggs 和 geo_distance 来统计不同范围段的数据

    GET kibana_sample_data_ecommerce/_search
    {"size": 0,"aggs": {"agg_by_distance": {"geo_distance" : {"field": "geoip.location", "origin": {"lat" : 40.6,"lon" : -73},"unit": "mi","distance_type": "plane","ranges": [{"to":100},{"from": 100,"to":300},{"from": 300}]}}}
    }
    

    结果:

    此处单位为miles, 其它单位见 distance-units

3 说明

  • 参考文档

    1. geo-queries
    2. distance-units
  • 测试环境
    1. 本文测试案例对应的 es 版本为7.2.1
    2. 测试数据为kibana自带数据,Home->Add data->Sample data->Sample eCommerce orders

elk笔记13--Queries-geo queries相关推荐

  1. elk笔记13--Queries-compound queries

    elk笔记13--Queries-compound queries 1 compound 查询简介 2 compound 查询分类 2.1 bool query 2.2 boosting query ...

  2. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  3. opencv进阶学习笔记13:图像形态学操作大全(膨胀,腐蚀,开闭,黑帽,顶帽,梯度)python版

    基础版学习笔记: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版形态学: opencv学 ...

  4. CS224n笔记13 卷积神经网络

    为什么80%的码农都做不了架构师?>>>    本文由码农场同步,最新版本请查看原文:http://www.hankcs.com/nlp/cs224n-convolutional-n ...

  5. 【CentOS 7笔记13】,find用法和文件传输#171025

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd 一. find 1. 跟find相似的命令 which ls #从环境变量$PATH中查找wherei ...

  6. Linux学习笔记13

    Linux学习笔记13 Linux学习笔记13 配置Nagios 基本介绍 Nagios安装 - 服务端 Nagios安装 - 客户端 监控中心添加被监控主机 配置文件的简单说明 继续添加需要服务端通 ...

  7. Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

    Hadoop学习笔记-13.分布式集群中节点的动态添加与下架 开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如 ...

  8. 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning

    台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...

  9. java 量化指标_量化投资学习笔记13——各种指标的绘图、计算及交易策略

    <量化投资:以python为工具>第五部分笔记 先来画k线图,要注意finance模块已经从matplotlib库中去除,现在要用mpl_finance库,单独安装. 其中有candles ...

最新文章

  1. Eclipse中dropins干什么用的文件夹啊?
  2. Web会话安全分析工具ProxyStrike
  3. 数学老师出的谜语,语文老师已哭晕在厕所!
  4. 《四世同堂》金句摘抄(十七)
  5. python request 留位置4
  6. 国内外软件开发上的差距与分析
  7. 【Elasticsearch】Elasticsearch之元数据(meta-fields)介绍
  8. MuiPlayer视频播放组件入门
  9. MATLAB中如何忽略函数中前几个不需要的返回值而只取需要的返回值,例如:只取函数第二个返回值,而忽略第一个返回值
  10. nn.softmax的参数使用和数据使用
  11. Java21天打卡练习Day21-集合map
  12. 解决XlsxWriter插入时间格式问题
  13. 服务器为啥要搭建在2012系统,WindowsServer2012R2搭建SFTP服务器以及配置
  14. 毕业设计 嵌入式太空游戏机设计与实现
  15. springboot 指定配置文件
  16. 批量将图片与白色图进行叠加(仅作记录)
  17. 计算机窗口闪屏,电脑玩游戏闪屏是什么原因(对应的解决方法)
  18. Win7如何打开软键盘?Win7打开软键盘的方法
  19. 4G IoT设备开发,一板搞定
  20. 【每周一读】——你的孤独,虽败犹荣

热门文章

  1. Discuz论坛中新增文件类型图标的方法
  2. Android Studio 入门(转)
  3. sql查询——查询每门课程各分数段的人数,分别用count和sum方法实现
  4. 山特UPS电源/山特UPS 10KW电源逆变器设计方案
  5. 网站服务器处理器计划怎么设置,系统属性-高级-处理器计划选程序还是后台.docx...
  6. android wifi tcpip,Android无线调试:tcpip无线连接 | WiFi apk无线连接
  7. html5卷轴动画制作,几种逼真卷轴动画的制作方法
  8. C语言中的结束符‘\0‘
  9. ofstream,ifstream,fstream读写文件
  10. 金 融 量 化 分 析 • JoinQuant • 第 五 篇