IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Elasticsearch——Geopoint字段类型 -> 正文阅读

[大数据]Elasticsearch——Geopoint字段类型

geo_point类型的字段接受经纬度对,可以使用:

  • 在边界框内、距离中心点一定距离内、多边形内或geo_shape查询内查找地质点的步骤。

  • 按地理位置或距离中心点聚合文档。

  • 将距离整合到文档的相关性得分中。

  • 按距离对文档进行排序。

指定geopoint点有五种方式,如下所示:

PUT my-index-000001
{
  "mappings": {
    "properties": {
      "location": {
        "type": "geo_point"
      }
    }
  }
}


PUT my-index-000001/_doc/1
{
  "text": "Geopoint as an object",
  "location": {  (1)
    "lat": 41.12,
    "lon": -71.34
  }
}


PUT my-index-000001/_doc/2
{
  "text": "Geopoint as a string",
  "location": "41.12,-71.34"  (2)
}


PUT my-index-000001/_doc/3
{
  "text": "Geopoint as a geohash",
  "location": "drm3btev3e86"   (3)
}


PUT my-index-000001/_doc/4
{
  "text": "Geopoint as an array",
  "location": [ -71.34, 41.12 ]   (3)
}



PUT my-index-000001/_doc/5
{
  "text": "Geopoint as a WKT POINT primitive",
  "location" : "POINT (-71.34 41.12)"   (5)
}



GET my-index-000001/_search
{
  "query": {
    "geo_bounding_box": {  (6)
      "location": {
        "top_left": {
          "lat": 42,
          "lon": -72
        },
        "bottom_right": {
          "lat": 40,
          "lon": -74
        }
      }
    }
  }
}




(1)geopoint表示为对象,使用lat和lon关键点。

(2)geopoint表示为字符串,格式为:“lat,lon”。

(3)geopoint表示为geohash。

(4)geopoint表示为 array的格式:[lon,lat]

(5)genpoint表示为 Well-Known Text Point ,用“Point(lon-lat)”格式。

(6)地理边界框查询,用于查找落在该框内的所有地理点。

注意:Geopoints 表示为数组或字符串

请注意,字符串genpoints按lat、lon顺序排列,而阵array geopoints按相反顺序排列:lon、lat。

最初,lat、lon用于数组和字符串,但数组格式在早期已更改,以符合GeoJSON使用的格式。

在脚本(scripts)中使用Geopoints

在scripts中访问某个geopoint的值时,该值将作为GeoPoint对象返回,从而允许分别访问.lat和.lon值:

def geopoint = doc['location'].value;
def lat      = geopoint.lat;
def lon      = geopoint.lon;

出于性能原因,最好直接访问lat/lon值:

def lat      = doc['location'].lat;
def lon      = doc['location'].lon;

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:36:15  更:2021-08-22 13:38:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:15:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码