【Elasticsearch】geohex grid聚合

news/2025/2/6 18:19:42 标签: elasticsearch

在 Elasticsearch 中,地理边界过滤是一种用于筛选地理数据的技术,它可以根据指定的地理边界形状(如矩形、多边形等)来过滤符合条件的文档。这种方法在地理空间数据分析中非常有用,尤其是在需要将数据限制在特定地理区域内时。

 

 

 

什么是地理边界过滤?

地理边界过滤允许用户定义一个地理边界(如矩形、多边形或复杂的地理形状),并仅返回那些与该边界相交或完全包含在其中的地理数据。这种过滤方式可以用于`geo_point`和`geo_shape`类型的字段。

 

 

常见的地理边界过滤类型

 

1. `geo_bounding_box`:根据矩形边界框来过滤结果。需要指定左上角和右下角的坐标。

 

```json

   {

     "query": {

       "geo_bounding_box": {

         "location": {

           "top_left": {

             "lat": 52.4,

             "lon": 4.9

           },

           "bottom_right": {

             "lat": 52.3,

             "lon": 5.0

           }

         }

       }

     }

   }

   ```

 

 

 

2. `geo_polygon`:根据多边形区域来过滤结果。需要指定多边形的顶点坐标。

 

```json

   {

     "query": {

       "geo_polygon": {

         "location": {

           "points": [

             {"lat": 52.4, "lon": 4.9},

             {"lat": 52.3, "lon": 5.0},

             {"lat": 52.4, "lon": 5.0}

           ]

         }

       }

     }

   }

   ```

 

 

 

3. `geo_shape`:支持更复杂的地理形状查询,如国家边界等。

 

```json

   {

     "query": {

       "geo_shape": {

         "location": {

           "shape": {

             "type": "polygon",

             "coordinates": [

               [

                 [4.9, 52.4],

                 [5.0, 52.4],

                 [5.0, 52.3],

                 [4.9, 52.3],

                 [4.9, 52.4]

               ]

             ]

           }

         }

       }

     }

   }

   ```

 

 

 

在 Geohex Grid 聚合中的应用

在使用 Geohex Grid 聚合时,可以通过`bounds`参数来限制聚合的地理范围。`bounds`参数接受与`geo_bounding_box`查询相同的边界框格式。

 

```json

POST /museums/_search?size=0

{

  "aggregations": {

    "tiles-in-bounds": {

      "geohex_grid": {

        "field": "location",

        "precision": 12,

        "bounds": {

          "top_left": "POINT (4.9 52.4)",

          "bottom_right": "POINT (5.0 52.3)"

        }

      }

    }

  }

}

```

 

 

 

优势

 

• 提高查询效率:通过限制地理范围,可以减少需要处理的数据量,从而提高查询性能。

 

• 精确控制数据范围:确保聚合结果仅包含特定地理区域内的数据。

 

 

总结

地理边界过滤是 Elasticsearch 中一种强大的地理数据筛选技术,它可以根据用户定义的地理边界来筛选符合条件的文档。这种技术在地理空间数据分析中非常有用,尤其是在需要将数据限制在特定地理区域内时。


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

相关文章

【Elasticsearch】 邻接矩阵聚合(Adjacency Matrix Aggregation)

Elasticsearch 的邻接矩阵聚合(Adjacency Matrix Aggregation)是一种特殊的桶聚合,用于分析多个过滤器之间的交集关系。它可以帮助你快速了解哪些文档同时满足多个条件,并统计每个交集的文档数量。这种聚合特别适用于分析复杂的关…

一款wordpress AI免费插件自动内容生成+前端AI交互+文章批量采集

一款wordpressAI自动内容生成前端AI会话窗口交互文章批量采集免费插件 1. SEO优化文章生成 关键词驱动的内容生成:用户可以输入关键词或长尾关键词,插件会根据这些关键词生成高质量的SEO优化文章。文章结构清晰,语言自然流畅,符合…

【大数据技术】搭建完全分布式高可用大数据集群(Scala+Spark)

搭建完全分布式高可用大数据集群(Scala+Spark) scala-2.13.16.tgzspark-3.5.4-bin-without-hadoop.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Spark的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/softwa…

景联文科技:专业数据采集标注公司 ,助力企业提升算法精度!

随着人工智能技术加速落地,高质量数据已成为驱动AI模型训练与优化的核心资源。据统计,全球AI数据服务市场规模预计2025年突破200亿美元,其中智能家居、智慧交通、医疗健康等数据需求占比超60%。作为国内领先的AI数据服务商,景联文…

mini-lsm通关笔记Week2Day6

项目地址:https://github.com/skyzh/mini-lsm 个人实现地址:https://gitee.com/cnyuyang/mini-lsm Summary 在本章中,您将: 实现WAL日志文件的编解码 系统重启时使用WAL日志恢复memtable 要将测试用例复制到启动器代码中并运行…

深度学习篇---二维码预训练模型

文章目录 前言第一部分:二维码1. 二维码结构定位标记分隔符定时标记格式信息数据码字纠错码字 2. 二维码识别步骤步骤一:图像预处理灰度化二值化 步骤二:定位标记检测查找定位标记确定二维码位置和方向 步骤三:图像校正透视变换 步…

代码随想录算法训练营打卡第56天

前言 今天依旧是并查集的一天,一共有两题,第一道题感觉还可以,第二道题研究了之后直接放弃,感觉还不适合我现在的水平。。。 冗余连接 文章链接:代码随想录 题目链接:108. 冗余连接 本题的目的是找出多…

java后端开发面试常问

面试常问问题 1 spring相关 &#xff08;1&#xff09;Transactional失效的场景 <1> Transactional注解默认只会回滚运行时异常&#xff08;RuntimeException&#xff09;&#xff0c;如果方法中抛出了其他异常&#xff0c;则事务不会回滚&#xff08;数据库数据仍然插…