Elasticsearch:位置搜索介绍

在这个互联网和信息时代,在应用程序和应用程序中启用基于位置的搜索是一个普遍的要求。 基于位置的搜索根据邻近度获取场所或地点,例如附近的餐馆、半径不超过 1 公里的待售房屋等。 我们还使用基于位置的搜索来查找前往某个地方或兴趣点的方向。

好消息是地理空间支持是 Elasticsearch 中的一等公民。 专用数据类型允许我们定义用于索引地理空间数据的模式,从而实现集中搜索。

Elasticsearch 提供一组地理空间搜索查询,例如 bounding_box、geo_distance 和 geo_shape,具体取决于给定的用例。 这些查询足以满足大多数用例。 这些查询中的每一个都满足本节中简要讨论的一组要求。

Bounding box query

有时,我们可能想找出周边地区的餐馆、学校或大学等地点的列表; 假设是正方形或长方形。 我们可以通过获取左上角和右下角的坐标集来构造一个矩形,通常称为地理矩形。 这些坐标由一对经度和纬度测量值组成,代表这些角。

Elasticsearch 提供了一个 bounding_box query,让我们可以搜索适合 geo rectangle 的所需地址。 此查询获取由我们的坐标集构建的地理矩形内的兴趣点(作为查询条件)。 例如,下图表示包含在一个这样的地理矩形中的地址。

如上图中的矩形标记,我们正在搜索伦敦市中心的地址,该区域在地理矩形中突出显示。 与此矩形相交的地址作为正结果返回。 如需了解如何做 bounding_box query,请参阅文章:

  • Elasticsearch:Geo Point 和 Geo Shape 查询解释

  • Elasticsearch:高级数据类型介绍

  • Elasticsearch:理解 Elastic Maps 中的 geohash 及其聚合

Geo_distance query

你可能看过好莱坞电影,其中一名 FBI 特工试图在一个围绕中心焦点画成圆圈的区域中锁定逃犯。 这正是 geo_distance query 所做的!

Elasticsearch 提供了 geo_distancequery 来获取圆圈内的地址。 给定的中心由经度和纬度以及作为距离的半径定义。 下图以图形方式演示了地理距离概念。

如图所示,我们有一个中心位置(在地图上显示为掉落的大头针)和一个覆盖我们要查找的地址的圆形区域。 焦点(或中心位置)是地图上由纬度和经度坐标指示的点。 了解如何做 geo_distance query,请参阅文章:

  • Elasticsearch:Geo Point 和 Geo Shape 查询解释

  • Elasticsearch:在 Elasticsearch 中按距离有效地对地理点进行排序

  • Elasticsearch:使用 Elasticsearch 进行地理位置搜索

Geo_shape query

还有另一种类型的查询,geo_shape query。 此查询获取给定几何构造的地理包络中的地理点(地址)列表。 信封可以是三边三角形或多边形(除非信封不能是开放式的)。 下图形象地展示了这个概念。

该图显示了在具有给定的六对坐标(每一对是具有纬度和经度的地理点)的地图上构建的六角形包络线。 geo_shape search 查找适合此多边形内的位置。想了解更多关于 geo_shape 方面的搜索,请阅读文章:

  • Elasticsearch:Geo Point 和 Geo Shape 查询解释
  • Elasticsearch:Geoshape query - 过滤含有地理位置的文档

  • Elasticsearch:如何制作 GeoJSON 文件并进行地理位置搜索


http://www.niftyadmin.cn/n/227658.html

相关文章

C++ 模板初阶

目录 一、函数模板 1.函数模板的概念 2.函数模板的定义 3.函数模板的原理 4.函数模板的实例化 ①隐式实例化 ②显式实例化 5.非模板函数与同名的函数模板同时存在 6.模板参数的匹配原则 二、类模板 1.类模板的定义格式 2.采用类模板的类外函数的定义格式 3.类模板…

十大排序算法之插入排序、希尔排序、选择排序

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【数据结构初阶(C实现)】 本篇主要讲解八大排序算法中的三种排序,分别是:插入排序、希尔排…

游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发(码客 卢益贵)

关键词:AI(AIGC、ChatGPT、文心一言)、流程式管理、好莱坞电影流程、电影工厂、游戏工厂、游戏开发流程、游戏架构、模块化开发 一、前言 开发周期长、人工成本高、成功率低等使得游戏公司融资比较困难。有的公司凭一个爆款游戏一骑绝尘之后…

如何使用Midjourney辅助建筑平面设计和室内设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅图为例)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

【并发编程Python】一文详解Python并发编程,协程、线程、进程

并发编程简介和一些前缀知识 并发编程是使得程序大幅度提速的。在并发编程中,程序可以同一时间执行多个任务,这有助于提高程序的吞吐量和响应时间。并发编程设计的主要概念包括线程、锁、同步、信号量、进程间通信等。 前缀知识: IO&#x…

微信小程序 | 基于ChatGPT实现模拟面试小程序

Pre:效果预览 ① 选择职位进行面试 ② 根据岗位职责进行回答 一、需求背景 这两年IT互联网行业进入寒冬期,降本增效、互联网毕业、暂停校招岗位的招聘,各类裁员、缩招的情况层出不穷!对于这个市场来说,在经历了互联网…

“QT 快速上手指南“ 之 计算器(二)组件,坐标,窗口

文章目录前言一、QT 基本组件用法介绍:1. QLabel :2. QPushButton :3. QLineEdit:二、坐标系统三、窗口部件的大小设置1. setSize( ) 函数:2. resize( )函数:3. setFixedSize( )函数:4. setFixedWidth( ) 和 setFixedHeight( )函数…

AI绘图体验:想象力无限,创作无穷!(文生图)

基础模型:3D二次元 PIXEL ART (1)16-bit pixel art, outside of caf on rainy day, light coming from windows, cinematic still(电影剧照), hdr (2) 16-bit pixel art, island in the clouds, by studio ghibli(吉卜力工作室…