Elasticsearch 地理空间搜索 - 远超 OpenSearch
作者:来自 Elastic Nathan_Reese
2021 年,OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统,但它们不提供相同的功能。 在分叉时,只能克隆开源许可的功能。 这给 OpenSearch 留下了一部分功能。 自分叉以来,这种功能差距已经扩大。 让我们探索如何只有 Elasticsearch 和 Kibana 才能提供最快的地图、缩短上市时间、提供更多见解并适应未来。 不要让 OpenSearch 的限制限制你。
使用矢量切片提供快速地图
地图提供了一种直观的方式来显示大量数据,从数万个点,到数以千计的复杂政治边界,再到数以万计的聚合分组 - 全部都在同一张地图上! 将所有这些数据传输到你的网络浏览器是一个耗时的过程。 幸运的是,Mapbox 在 2010 年代初通过引入矢量切片(vector tiles)解决了这个问题。
矢量图块通过以下方式为你的地图提供快速加载:
- 将请求分成更小的部分。 你的地图视口被分成更小的方形图块。 每个图块都作为自己的请求获取,从而并行数据加载。
- 向浏览器发送更少的数据。 复杂的几何图形被简化,以删除在请求的缩放级别上不可见的细节。 例如,政治边界可能沿着河流的轮廓。 虽然边界包含数千个顶点以准确地遵循河流的路径,但当该级别的细节不可见时,这些顶点将被删除。
- 使用节省空间的数据序列化。 数据通常以文本形式发送到你的浏览器。 例如,当坐标 -77.036379543 作为文本发送时,每个数字都作为单个字符发送。 矢量切片使用 Google 协议缓冲区并将数字编码为 16 位或 32 位浮点数,从而显着减少空间。
Elasticsearch 提供矢量切片搜索 API(vector tile search API),以二进制 Mapbox 矢量切片形式返回搜索结果。 与基于文本的 _search API 相比,加载速度快得惊人:
Kibana 中的矢量切片 (vector tiles):使地理分析变得平滑
你需要快速地图,并且只有 Elasticsearch 可以提供二进制 Mapbox 矢量切片形式的搜索结果。
使用 Elastic Maps Service 和 Kibana 地图缩短上市时间
Elastic 地图服务
参考地图为地理数据提供了重要的背景; 政治边界(如国家边界)、自然特征(如河流)以及人造特征(如道路)。 Elastic Maps Service 提供参考底图,为你在 Kibana 中的地理空间可视化提供支持。
在专用网络上运行 Elastic Stack? 没问题,我们为你服务。 只有 Elastic 地图服务可以托管在本地网络上。
Kibana 地图
立即将你的地理数据与 Kibana Maps 结合使用。 使用多个图层和索引在单个地图中显示所有数据。 绘制单个文档或使用聚合来绘制任何数据集,无论有多大。 使用时间滑块对时空数据进行动画处理。 自定义每个图层以突出显示有意义的维度。 跨层搜索以仅关注你想要的数据。 将自由文本搜索与基于字段的搜索相结合。 设置时间过滤器以按时间限制图层。 在地图上绘制多边形或使用要素的形状来创建空间过滤器。 过滤各个层以比较方面。 只有 Kibana 地图提供对 Elasicsearch 所有地理空间功能的实例访问。
此仪表板显示了别哈山火山喷发(umbre Vieja eruption)的影响。
通过 Geohex 网格和 Geo-line 聚合提供更多见解
聚合是一种重要的分析工具,用于将大量数据集分组并汇总为可使用的指标。
Geohex 网格聚合
聚合允许你将地理数据分组为几何区域,并比较和对比组间的指标。 六边形网格是一种流行的定义几何区域的机制,其中每个图块的面积在整个地球上大致相同,从而可以得到更相关的统计结果。 只有 Elasticsearch 提供直线和多边形的六边形空间分析。
该仪表板显示了纽约市教堂的分布。
地理线聚合
对于地理数据,每个数据点可以不仅仅是一个事件,每个数据点可以是一系列相关事件的一部分。 例如,单个 GPS 坐标提供车辆在某个时间点的位置,而一系列 GPS 坐标则显示车辆的路径。 只有 Elasticsearch 提供 Geo-line 聚合,允许你将点变成线,将单个事件的信息放大到更广阔的画面。
下图来自实时资产跟踪、可视化和警报教程,显示了波特兰市的公共交通巴士坐标。
通过读取模式适应未来
工作流程随着时间的推移而发展。 今天的关键内容可能会减弱相关性,而未使用的信息将成为明天决策的关键数据点。 读取模式使你的工作流程能够应对未来的挑战。
只有 Elasticsearch 提供带有运行时字段的读取模式。 运行时字段允许你创建在查询时评估的字段。 让我们通过一个示例来探索运行时字段。 Web 日志被引入 Elasticsearch。 Web 日志包含有关请求位置的地理空间信息,但该信息在写入时不会建立索引。 现在,我们需要运行地理空间搜索。 我们可以在查询中定义 geo_point 运行时字段并执行地理空间搜索,而无需重新索引网络日志。
相关文章:

Elasticsearch 地理空间搜索 - 远超 OpenSearch
作者:来自 Elastic Nathan_Reese 2021 年,OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统,但它们不提供相同的功能。 在分叉时,只能克…...

USB micro输入口中三个问题详解——差分信号、自恢复保险丝SMD1210P050TF、电容滤波
前言:本文对USB micro输入口中遇见的三个问题进行详解:差分信号、自恢复保险丝SMD1210P050TF、电容滤波 目录: 差分信号 自恢复保险丝SMD1210P050TF 电容滤波 如下图,USB为U-F-M5DD-Y-1型号(9个引脚,除…...

mysql原理--undo日志1
1.事务回滚的需求 我们说过 事务 需要保证 原子性 ,也就是事务中的操作要么全部完成,要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况,比如: (1). 事务执行过程中可能遇到各种错误,比如服务器本身的错误&…...

Zookeeper系列(一)集群搭建(非容器)
系列文章 Zookeeper系列(一)集群搭建(非容器) 目录 前言 下载 搭建 Data目录 Conf目录 集群复制和修改 启动 配置示例 测试 总结 前言 Zookeeper是一个开源的分布式协调服务,其设计目标是将那些复杂的且容易出错的分…...

【高等数学之泰勒公式】
一、从零开始 1.1、泰勒中值定理1 什么是泰勒公式?我们先看看权威解读: 那么我们从古至今到底是如何创造出泰勒公式的呢? 由上图可知,任一无穷小数均可以表示成用一系列数字的求和而得出的结果,我们称之为“无穷算法”。 那么同理我们想对任一曲线来…...

奇异值分解在图形压缩中的应用
奇异值分解在图形压缩中的应用 在研究奇异值分解的工程应用之前,我们得明白什么是奇异值?什么是奇异向量? 奇异值与奇异向量 概念:奇异值描述了矩阵在一组特定向量上的行为,奇异向量描述了其最大的作用方向。 奇异值…...

C++深入学习之STL:1、容器部分
标准模板库STL的组成 主要由六大基本组件组成:容器、迭代器、算法、适配器、函数对象(仿函数)以及空间配置器。 容器:就是用来存数据的,也称为数据结构。 本文要详述的是容器主要如下: 序列式容器:vector、list 关联…...

Javascript——vue下载blob文档流
<el-table-column label"操作" fixed"right" width"150" showOverflowTooltip><template slot-scope"scope"><el-button type"text" v-has"stbsd-gjcx-down" class"edit-button" click&…...
C# 的SequenceEqual
SequenceEqual 是 LINQ 扩展方法之一,用于比较两个序列(如数组、列表等)的元素是否相等。 该方法的详细定义如下: public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TS…...
第九部分 使用函数 (一)
目录 一、简介 二、函数的调用语法 一、简介 在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具 有智能。make 所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数 的返回值可以当做变量来使用…...

【JUC进阶】14. TransmittableThreadLocal
目录 1、前言 2、TransmittableThreadLocal 2.1、使用场景 2.2、基本使用 3、实现原理 4、小结 1、前言 书接上回《【JUC进阶】13. InheritableThreadLocal》,提到了InheritableThreadLocal虽然能进行父子线程的值传递,但是如果在线程池中&#x…...

基于C++的ORM框架sqlpp11入门介绍(附MySQL运行实例)
基本介绍 sqlpp11 是 C 的类型安全的 SQL 模版库。 Sqlpp11的官方下载地址是, GitHub - rbock/sqlpp11: A type safe SQL template library for C 在这里,可以找到官方的详细介绍文档, https://github.com/rbock/sqlpp11/tree/main/docs…...

对写文章的想法
一些思考 思考初心现在错觉想说的话 最后 思考 在CSDN里面写文章已经快半年了啊,虽然更得不多,但每一篇都花费很多时间,写的时候能帮自己查漏补缺,这边找找资料补充一下,都能去拓展自己的知识面,让自己的文…...

Istio安装和基础原理
1、Istio简介 Istio 是一个开源服务网格,它透明地分层到现有的分布式应用程序上。 Istio 强大的特性提供了一种统一和更有效的方式来保护、连接和监视服务。 Istio 是实现负载平衡、服务到服务身份验证和监视的路径——只需要很少或不需要更改服务代码。它强大的控…...
C++核心编程——基于多态的企业职工系统
本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…...

Nginx服务安装
Nginx(发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消 耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求)。正因 为如此,大量提供社交网络、…...

微信小程序canvas画布实现矩形元素自由缩放、移动功能
一、获取画布信息并绘制背景 .whml <canvas class="canvas" type="2d" id="myCanvas" bindtouchstart="get_rect_touch_position" bindtouchmove="move_or_scale" bind:tap="finish_edit_check"/> 定义c…...
一文搞懂 Python 3 中的数据类型
介绍 在 Python 中,与所有编程语言一样,数据类型用于对一种特定类型的数据进行分类。这很重要,因为您使用的特定数据类型将决定您可以为其分配哪些值以及您可以对其执行哪些操作(包括可以对其执行哪些操作)。 1. 数字…...

学习笔记之——3D Gaussian Splatting源码解读
之前博客对3DGS进行了学习与调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研-CSDN博客文章浏览阅读450次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作,它的特点在于重建质量高的情况下还能接入传统光栅化,优…...

Flink standalone集群部署配置
文章目录 简介软件依赖部署方案二、安装1.下载并解压2.ssh免密登录3.修改配置文件3.启动集群4.访问 Web UI 简介 Flink独立模式(Standalone)是部署 Flink 最基本也是最简单的方式:所需要的所有 Flink 组件, 都只是操作系统上运行…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...