千家信息网

elasticsearch怎么设置地理位置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"elasticsearch怎么设置地理位置",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"elasticsearch怎么设置地理位置
千家信息网最后更新 2026年11月02日elasticsearch怎么设置地理位置

这篇文章主要讲解了"elasticsearch怎么设置地理位置",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"elasticsearch怎么设置地理位置"吧!

1. 地理位置

2. 地理坐标点

2.1. 设置索引属性

  • geo_point: 地理坐标类型

  • lat_lon: 设置为 true 时,lat、lon 字段将被分别索引。它们可以被用于检索,但是不会在检索结果中返回。

{  "mappings": {    "": {      "properties": {        "": {          "type": "geo_point",          "lat_lon": true        }      }    }  }}

2.2. 经纬度格式

格式一:字符串,格式 "lat,lon"

{  "location": "40.715, -74.011"}

格式二:

{  "location": {    "lat":     40.722,    "lon":    -73.989  }}

格式三:数组,格式 [lon,lat]

{  "location": [ -73.983, 40.719 ]}

3. 过滤查找

3.1. geo_bounding_box

地理坐标盒模型过滤器,找出落在指定矩形框中的点

  • 地理坐标盒模型过滤器不需要把所有坐标点都加载到内存里。 因为它要做的只是简单判断 lat 和 lon 坐标数值是否在给定的范围内,可以用倒排索引做一个 range 过滤来实现目标

  • 设置 type 参数为 indexed (替代默认值 memory )来明确告诉 Elasticsearch 对这个过滤器使用倒排索引。

{    "query": {        "filtered": {            "filter": {                "geo_bounding_box": {                    "type": "indexed",                    "location": {                        "top_left": {                            "lat": 40.8,                            "lon": -74.0                        },                        "bottom_right": {                            "lat": 40.7,                            "lon": -73.0                        }                    }                }            }        }    }}

3.2. geo_distance

地理距离过滤器,找出与指定位置在给定距离内的点

常用距离单位: mi(英里), yd(码), in(英寸), km(千米), m(米), cm(厘米), mm(毫秒)

{    "query": {        "filtered": {            "filter": {                "geo_distance": {                    "distance": "1km",                    "location": {                        "lat": 40.715,                        "lon": -73.988                    }                }            }        }    }}

3.3. geo_distance_range

地理距离区间过滤器, 找出与指定点距离在给定最小距离和最大距离之间的点

  • 匹配那些距离中心点大于等于 1km 而小于 2km 的位置

{    "query": {        "filtered": {            "filter": {                "geo_distance_range": {                    "gte": "1km",                    "lt": "2km",                    "location": {                        "lat": 40.715,                        "lon": -73.988                    }                }            }        }    }}

3.4. geo_polygon

找出落在多边形中的点。 这个过滤器使用代价很大。当你觉得自己需要使用它,最好先看看

3.5. 按距离排序

  • 计算每个文档中 location 字段与指定的 lat/lon 点间的距离

  • 将距离以 km 为单位写入到每个返回结果的 sort 键中

  • 使用快速但精度略差的 plane 计算方式

{    "query": {        "filtered": {            "filter": {                "geo_bounding_box": {                    "type": "indexed",                    "location": {                        "top_left": {                            "lat": 40.8,                            "lon": -74.0                        },                        "bottom_right": {                            "lat": 40.4,                            "lon": -73.0                        }                    }                }            }        }    },    "sort": [        {            "_geo_distance": {                "location": {                    "lat": 40.715,                    "lon": -73.998                },                "order": "asc",                "unit": "km",                "distance_type": "plane"            }        }    ]}

感谢各位的阅读,以上就是"elasticsearch怎么设置地理位置"的内容了,经过本文的学习后,相信大家对elasticsearch怎么设置地理位置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

地理 位置 格式 过滤器 地理位置 坐标 索引 学习 内容 单位 字段 标点 模型 结果 检索 很大 最小 中心点 之间 代价 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 深圳恒合互联网络科技有限公司 互联网医疗科技 艾特科技互联网 亿账通互联网科技 中国互联网金融科技基金 佩信高科技互联网 西藏七维空间互联网科技有限公司 互联网为啥属于高科技 朱啸虎曾投资哪些互联网科技企业 中和天地互联网科技有限公司 互联网科技股为什么大涨 神州科技互联网有限公司 吉林省码上互联网科技电话 万物互联网智能科技 互联网科技手抄报图片 北京互联网科技类企业分布 数字科技和互联网金融哪个好 北京瑞云互联网科技有限公司 六子台科技互联网展会 A股互联网金融科技公司 互联网科技的 金融科技创新监管互联网金融 狮子座互联网科技有限公司 佛山市拉法互联网科技有限公司 玉溪新华互联网科技好不好 众安科技工业互联网合作 中国互联网公司的科技投入 互联网科技和医药行业 广州全民伙伴互联网科技有限公司
0