MST

星途 面试题库

面试题:ElasticSearch中距离单位在地理空间查询API里的应用

在ElasticSearch中,若要实现查找距离某个坐标点10公里内的所有文档,使用地理空间查询API时,应如何正确选择和设置距离单位?请写出相应的查询语句示例,并解释关键参数的含义。
20.8万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. 距离单位选择
    • 在ElasticSearch地理空间查询中,常用的距离单位有km(千米)、m(米)、mi(英里)、yd(码)、ft(英尺)等。对于查找距离某个坐标点10公里内的文档,应选择km作为距离单位。
  2. 查询语句示例
    {
        "query": {
            "bool": {
                "filter": {
                    "geo_distance": {
                        "distance": "10km",
                        "pin.location": {
                            "lat": 40.7128,
                            "lon": -74.0060
                        }
                    }
                }
            }
        }
    }
    
  3. 关键参数含义
    • distance:指定距离值和单位,这里设置为10km,表示查找距离指定坐标点10千米范围内的文档。
    • pin.location:这是文档中存储地理坐标的字段名,不同的应用场景下该字段名可能不同,需根据实际情况调整。在示例中假设文档中有一个名为location的地理坐标字段,它是在pin对象下。
    • latlon:分别代表纬度(latitude)和经度(longitude),示例中设置为40.7128(纬度)和 - 74.0060(经度),这是要计算距离的中心点坐标。