首页 > 其他分享 >ES--地理坐标查询

ES--地理坐标查询

时间:2024-01-11 16:56:11浏览次数:23  
标签:box distance -- 查询 地理坐标 bounding 矩形 geo ES

所谓的地理坐标查询,其实就是根据经纬度查询,官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-queries.html

常见的使用场景包括:

  • 携程:搜索我附近的酒店

  • 滴滴:搜索我附近的出租车

  • 微信:搜索我附近的人

 矩形范围查询,也就是geo_bounding_box查询,查询坐标落在某个矩形范围的所有文档:

查询时,需要指定矩形的左上右下两个点的坐标,然后画出一个矩形,落在该矩形内的都是符合条件的点。

语法如下:

// geo_bounding_box查询
GET /indexName/_search
{
  "query": {
    "geo_bounding_box": {
      "FIELD": {
        "top_left": { // 左上点
          "lat": 31.1,
          "lon": 121.5
        },
        "bottom_right": { // 右下点
          "lat": 30.9,
          "lon": 121.7
        }
      }
    }
  }
}
 

 

附近查询,也叫做距离查询(geo_distance):查询到指定中心点小于某个距离值的所有文档。

换句话来说,在地图上找一个点作为圆心,以指定距离为半径,画一个圆,落在圆内的坐标都算符合条件:

// geo_distance 查询
GET /indexName/_search
{
  "query": {
    "geo_distance": {
      "distance": "15km", // 半径
      "FIELD": "31.21,121.5" // 圆心
    }
  }
}

标签:box,distance,--,查询,地理坐标,bounding,矩形,geo,ES
From: https://www.cnblogs.com/daitu66/p/17958898

相关文章

  • node.js 安装与环境变量配置
    一、安装node.js官网:下载地址 历史版本:历史版本下载地址    下载完毕后,可以安装node,一路默认选项即可。这里我的安装路径是:D:\environment\nodejs。建议不要安装在系统盘(如C:),建议安装的路径不要有中文。 二、设置nodejsprefix(全局)和cache(缓存)路径1、新建文件夹:n......
  • Python面向对象之绑定方法和非绑定方法
    绑定方法与非绑定方法【一】概要在Python中,绑定方法是指将类的实例与类的方法关联起来的过程。绑定方法包含类实例作为第一个参数,通常被称为self。当通过实例调用类的方法时,Python会自动传递实例作为第一个参数,这个过程就是方法绑定。【二】常用方法【1】绑定方法(动态方......
  • ES--全文检索查询
    全文检索查询的基本流程如下:对用户搜索的内容做分词,得到词条根据词条去倒排索引库中匹配,得到文档id根据文档id找到文档,返回给用户比较常用的场景包括:商城的输入框搜索百度输入框搜索常见的全文检索查询包括:match查询:单字段查询multi_match查询:多字段查......
  • Day48 构造器详解
    构造器详解类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:1.必须和类的名字相同2.必须没有返回类型,也不能写void构造器必须要掌握1.Person.class文件与Person.java文件进行对比在idea的out文件夹下面打开同名的class文......
  • 《大学计算机》课程简介 School of Computer Science and Engineering
    《大学计算机》课程简介SchoolofComputerScienceandEngineering阅读量:1630     发布时间:2014-05-25分享到: 《大学计算机》课程是大学计算机基础教学的最基本课程,是大学本科非计算机专业学生必修的公共基础课。计算机基础课程如同数学、外语一样,其教学内......
  • 【题解】CatOJ C0458C 滑动窗口定期重构
    标题trick的名字我也不知道是什么,就这样吧。link。首先有显然的dp式子:\(f(i)=\min\{f(j)\times\max\{a_{j+1},\dots,a_i\}\}\)。考虑怎么去优化它。有显然的\(\mathcalO(n\logn)\):考虑线段树优化dp。用增的单调栈维护\(a\),若每次弹出顶部一个下标\(p\),则\([p+1,i......
  • 哈希表的应用
    也是滑动窗口的应用,但用到了哈希表。哈希表一个索引,一个真值。索引可以是任何符号,因此可以表示一个事物的数量关系和对应关系.删除某个索引及真值时,要用迭代器,erase(it)。find是查找索引返回迭代器。点击查看代码classSolution{public:inttotalFruit(vector<int>&fr......
  • mysql死锁日志
    发生死锁,第一时间查看死锁日志在分析日志前,我们要知道InnoDB中锁在日志中具体显示的数据类型,平时我们常接触到的是RecordLocks(记录锁),GapLocks(间隙锁),Next-KeyLocks和InsertIntentionLocks(插入意向锁)。这四种锁对应的死锁如下:记录锁(LOCK_REC_NOT_GAP):lock_modeXlocksrec......
  • KubeSphere实现金丝雀发布(Canary Release)
    0前言KubeSphere基于[Istio]向用户提供金丝雀发布功能,即:引入服务的新版本,并向其发送一小部分流量来进行测试同时,旧版本负责处理其余的流量如果一切顺利,就可逐渐增加向新版本发送的流量,同时逐步停用旧版本如出现任何问题,可用KubeSphere更改流量比例来回滚至先前版本......
  • ES--精准查询
    精确查询一般是查找keyword、数值、日期、boolean等类型字段。所以不会对搜索条件分词。常见的有:term:根据词条精确值查询range:根据值的范围查询 因为精确查询的字段搜是不分词的字段,因此查询的条件也必须是不分词的词条。查询时,用户输入的内容跟自动值完全匹配时才认为......