第五阶段 50 · geo 地理查询(geo_point / geo_distance)

发布时间:2026/11/16 5:16:05

第五阶段 50 · geo 地理查询(geo_point / geo_distance) 50 · geo 地理查询geo_point / geo_distance阶段第五阶段 / 进阶可选业务涉及地理位置时ESgeo_point/geo_shapegeo_distance/geo_bounding_box| PostgreSQLPostGISgeography/ST_DWithin1. 概念存经纬度并按「距离/范围」检索就用地理类型类型用途geo_point一个点经纬度最常用geo_shape线/面/多边形等复杂形状常见查询geo_distance某点 N 公里内、geo_bounding_box矩形框内、geo_distance聚合/排序按距离排序、分环统计。2. PostgreSQL 对照-- PostGIS5km 内的门店SELECT*FROMstoresWHEREST_DWithin(geog,ST_MakePoint(:lon,:lat)::geography,5000);-- 按距离排序SELECT*,geog-ST_MakePoint(:lon,:lat)::geographyASdistFROMstoresORDERBYdistLIMIT10;ES 的geo_distance≈ST_DWithin按距离排序 ≈-排序。3. ES DSL3.1 mapping 写入PUT stores_idx { mappings: { properties: { name: { type: keyword }, location: { type: geo_point } } } } POST stores_idx/_doc { name: Store-1, location: { lat: 39.9042, lon: 116.4074 } }3.2 geo_distanceN 公里内 按距离排序GET stores_idx/_search { query: { bool: { filter: { geo_distance: { distance: 5km, location: { lat: 39.9, lon: 116.4 } } } } }, sort: [ { _geo_distance: { location: { lat: 39.9, lon: 116.4 }, order: asc, unit: km } } ] }3.3 geo_bounding_box矩形框内query: { geo_bounding_box: { location: { top_left: { lat: 40.1, lon: 116.2 }, bottom_right: { lat: 39.7, lon: 116.6 } } } }4. Spring Boot 实现ComponentpublicclassDoc50GeoQuery{AutowiredprivateElasticsearchClientelasticsearchClient;/** 某点 radiusKm 公里内的门店按距离升序 */publicListMapString,Objectnearby(StringindexName,doublelat,doublelon,doubleradiusKm)throwsIOException{SearchResponseMaprespelasticsearchClient.search(s-s.index(indexName).query(q-q.bool(b-b.filter(f-f.geoDistance(g-g.field(location).distance(radiusKmkm).location(l-l.latlon(ll-ll.lat(lat).lon(lon))))))).sort(so-so.geoDistance(gd-gd.field(location).location(l-l.latlon(ll-ll.lat(lat).lon(lon))).order(SortOrder.Asc).unit(DistanceUnit.Kilometers))),Map.class);returnresp.hits().hits().stream().map(Hit::source).filter(Objects::nonNull).collect(Collectors.toList());}}importco.elastic.clients.elasticsearch._types.SortOrder、...DistanceUnit。每个 hit 的距离在hit.sort()对应_geo_distance排序值里可取出。5. 坑与最佳实践经纬度顺序易错GeoJSON 数组是[lon, lat]对象是{lat, lon}——别写反。geo_distance放filter不需要打分放 filter 更快、可缓存。距离排序有成本每命中文档都算距离大结果集配合先用geo_distance过滤缩小范围。精度 vs 性能geo_distance有arc精确/plane快、近距离够用两种算法。复杂形状用geo_shape点用geo_point即可多边形/围栏才上geo_shape。
延伸阅读

更多相关文章

2026/11/16 5:16:04

第五阶段 49 · 安全:TLS、API Key、RBAC

49 安全:TLS、API Key、RBAC阶段:第五阶段 / 运维进阶 ES:传输加密、身份认证、最小权限授权 | PostgreSQL:SSL、用户与角色、权限控制1. 概念 Elasticsearch 生产安全通常是三层: TLS(传输加密&#xff0…

2026/11/14 22:06:51

网易云音乐NCM格式转换终极指南:3步快速解密音乐文件

网易云音乐NCM格式转换终极指南:3步快速解密音乐文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的歌曲无法在其他播放器播放而烦恼吗?ncmdump工具正是你需要的解决方案,…

2026/11/16 5:11:20

特种作业操作证能转吗 考不过怕白交多少钱

特种作业操作证能转吗 考不过怕白交多少钱 怕考不过白交培训费?特种作业操作证到底能不能转?多少钱才能拿证?这些问题你可能已经问过,但真正了解的人不多。尤其是像电工、焊工、高处作业这些岗位,证照不仅是上岗的“通行证”,还直接关系到你的职业发展…

2026/11/16 5:11:20

考电工证深圳鹏考前押题怎么找?别再被中介忽悠了

考电工证深圳鹏考前押题怎么找?别再被中介忽悠了 你是不是也遇到过这种情况:想考电工证,但不知道去哪报名,怕被中介坑?现在市场上培训机构太多,信息鱼龙混杂,很多人在报名前都踩过坑。特别是像【考电工证深圳鹏】这类热门关键词,背后隐藏的陷阱更多。…

2026/11/16 5:11:20

新民电工证怎么考取的多久拿证全攻略

新民电工证怎么考取的多久拿证全攻略 怕考不过白交培训费?新民电工证怎么考取的,多久拿证,这事儿别急,我来给你讲清楚。别让培训机构忽悠你,也别让考试难住你,掌握方法,一次通过不是梦。 一、新民电工证怎么考取的?报名流程一文讲透…

2026/11/16 5:11:20

绥化低压电工证在哪办官方报名入口你知道在哪吗

绥化低压电工证在哪办官方报名入口你知道在哪吗 你是不是也遇到过这样的情况:手上有个电工技能,却因为没有低压电工证,被工地老板一口回绝?现在找工作, 特种作业证 几乎成了门槛,而 低压电工证 更是电气相关岗位的必备证件。今天就来聊聊,…

2026/11/16 5:11:20

黄埭附近哪里考电工证官方回应来了,别再被中介坑了

黄埭附近哪里考电工证官方回应来了,别再被中介坑了 你是不是也这样,想找黄埭附近哪里考电工证,结果被各种培训机构绕得晕头转向?不知道去哪报名怕被中介坑,怕花冤枉钱还考不上证?别急,官方回应来了,今天就把这些坑都给你讲清楚,别再被忽悠。…

2026/11/16 5:06:20

电工证过期了怎么报名复审?成人电工证培训全攻略来了

电工证过期了怎么报名复审?成人电工证培训全攻略来了 证书过期了不知道怎么复审延期?最近有不少人私信问我,说手里拿着低压电工证,但因为工作变动、疫情、疏忽等原因,证书已经过期了,现在不知道该怎么办,既怕影响工作,又担心重新考证太麻烦。今天就来…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/16 0:00:11

黎城电工证查询报名费多少钱 内部消息告诉你怎么避开中介陷阱

黎城电工证查询报名费多少钱 内部消息告诉你怎么避开中介陷阱 你是不是也和我一样,想考电工证,但不知道去哪报名,怕被中介坑?最近网上有不少人问“黎城电工证查询报名费多少钱”,结果一查,信息五花八门,真假难辨。别担心,今天我就从一线从业者的角度…

2026/11/16 0:00:11

青岛崂山区电工证培训通过率揭秘:外省证书怎么转过来?

青岛崂山区电工证培训通过率揭秘:外省证书怎么转过来? 之前考的证在外省能不能转过来?这个问题困扰着很多在外地打工的电工,尤其是像南阳卧龙区的建筑工人,他们常年在工地作业,手上持有电工证是基本要求,但很多人因为工作流动性大,担心证书不能转到本…

2026/11/15 4:46:37

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/16 3:17:47

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑