网站首页 > 开源技术 正文
我们都知道,Elasticsearch是一个全文检索引擎,其强大的全文检索能力可以支撑非常多的业务系统。但其实除了常规的数据类型,es还可以支持空间数据类型。目前Es可以支持两种空间数据类型,geo_point,geo_shape。笔者今天着重介绍一下Elasticsearch对geo_point数据类型的支持。
geo_point类型,实际上是经纬度的组合,主要用于地图空间数据的相关查询:
- 以某个坐标点为中心,搜索指定范围内的点;
- 通过空间属性聚合数据;
- 可以将距离作为相关性分数的一个计算因子;
- 通过距离进行排序。
1 创建mapping
插入geo_point类型的数据之前,需要先创建mapping,可以理解为关系型数据库中的表结构。
PUT my_index { "mappings": { "properties": { "location": { "type": "geo_point" } } } }
2 插入geo_point类型数据的4种姿势
2.1 作为object插入
PUT my_index/_doc/1 { "text": "Geo-point as an object", "location": { "lat": 41.12, "lon": -71.34 } }
2.2 作为string插入
PUT my_index/_doc/2 { "text": "Geo-point as a string", "location": "41.12,-71.34" }
2.3 geohash
PUT my_index/_doc/3 { "text": "Geo-point as a geohash", "location": "drm3btev3e86" }
2.4 array
PUT my_index/_doc/4 { "text": "Geo-point as an array", "location": [ -71.34, 41.12 ] }
3 查询实例
插入数据之后,我们来进行点的检索,检索出bbox范围内的所有点。
GET my_index/_search { "query": { "geo_bounding_box": { "location": { "top_left": { "lat": 42, "lon": -72 }, "bottom_right": { "lat": 40, "lon": -74 } } } } }
欢迎关注笔者,每天分享架构干货。
猜你喜欢
- 2024-09-14 Spark及Hadoop常见问题集锦(hadoop spark flink)
- 2024-09-14 CentOS7下安装geowave+hbase+geoserver的实现
- 2024-09-14 GIS工程师一些基础东西(gis工程师工作内容)
- 2024-09-14 Java图像基础知识(java图像算法)
- 2024-09-14 GIS坐标系介绍(gis常用坐标系)
- 2024-09-14 GeoServer安装以及部署(geoserver视频教程)
- 2024-09-14 Spring Boot集成GeoTools快速入门demo
- 2024-09-14 GeoTools数据解析(geo分析)
- 2024-09-14 GeoTools入门介绍(geotools wkt)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)