Elasticsearch 지리 데이터 유형

10871 단어 문서 번역

Elasticsearch 지리 데이터 유형

  • geo_point
  • geo_ 추가point의 다섯 가지 방식
  • geo_point 수락 매개 변수
  • geo_shape 데이터 형식
  • 매개변수 수용
  • GeoJSON and WKT 및 Elasticsearch 데이터 유형 대응 관계
  • 요청 예제
  • geo_point


    경위도 적용, 사용 가능:
  • 테두리 내, 중심점 일정 거리 내 또는 다각형에서 지리점 찾기
  • 문서
  • 를 지리적 위치 또는 거리 중심점의 거리로 요약
  • 문서에 거리를 통합하는 상관성 점수
  • 거리별 문서 정렬
  • geo_ 추가point의 다섯 가지 방식

  • lat 키로 대상의 지리적 위치를 표시
  • 문자열로 표시된 지리적 위치, 형식: lon
  • "lat,lon"의 지리적 위치를 나타냅니다
  • 은 수조의 지리적 위치를 나타내고 형식은 geohash
  • 지리점은 모두가 알고 있는 텍스트 점으로 그 형식은 다음과 같다. [ lon,lat]
  • 지리적 경계 상자 조회, 이 상자에 있는 모든 지리적 지점 찾기
  • 문자열의 지리적 위치는 정렬"POINT(lon lat)", 수조의 지리적 위치는 정반대의 순서로 정렬한다: lat,lon한 점은 lon,lat 로 표시할 수 있습니다.Geohash는 위도와 경도가 교차하는 비트의 base32 인코딩 문자열입니다.geohash의 문자마다 5비트 정밀도가 증가합니다.그래서 해시는 길수록 정확해진다.색인을 위해 대상 해시 값을 위도 - 경도 쌍으로 변환합니다.이 과정에서 앞의 12자만 사용하기 때문에geohash에서 12자 이상을 지정하면 정밀도를 높일 수 없습니다.12자 문자는 60비트를 제공합니다. 가능한 오류를 2cm 이하로 줄여야 합니다.
    PUT geo_data
    {
      "mappings": {
        "properties": {
          "location": {
            "type": "geo_point"
          }
        }
      }
    }
    
    PUT geo_data/_doc/1
    {
      "text": "Geo-point as an object",
      "location": { 
        "lat": 41.12,
        "lon": -71.34
      }
    }
    
    PUT geo_data/_doc/2
    {
      "text": "Geo-point as a string",
      "location": "41.12,-71.34" 
    }
    
    PUT geo_data/_doc/3
    {
      "text": "Geo-point as a geohash",
      "location": "drm3btev3e86" 
    }
    
    PUT geo_data/_doc/4
    {
      "text": "Geo-point as an array",
      "location": [ -71.34, 41.12 ] 
    }
    
    PUT geo_data/_doc/5
    {
      "text": "Geo-point as a WKT POINT primitive",
      "location" : "POINT (-71.34 41.12)" 
    }
    
    GET geo_data/_search
    {
      "query": {
        "geo_bounding_box": { 
          "location": {
            "top_left": {
              "lat": 42,
              "lon": -72
            },
            "bottom_right": {
              "lat": 40,
              "lon": -74
            }
          }
        }
      }
    }
    

    geo_point 수락 매개 변수

  • geohash, 기본값은 ignore_malformed 입니다.false인 경우 잘못된 지리적 위치를 무시합니다.true 인 경우 지리적 오류가 발생하면 이상이 발생합니다
  • false, 기본값은 ignore_z_value 입니다.true 인 경우 3차원 위치는 받아들여지지만 위도와 경도는 색인됩니다.false인 경우 수락하지 않고 여분의 2차원 위치인 경우 이상 발생
  • true, 표시null_value 값을 받아들인 null.기본값geopoint은 마른 필드가 분실된 것으로 간주됨을 나타냅니다.

  • geo_shape 데이터 형식


    이런 데이터 유형은 임의의 형태의 직사각형과 다각형을 색인하고 검색하는 데 편리하다.색인 중인 데이터나 실행 중인 조회가 점 이외의 다른 모양을 포함할 때 사용해야 합니다.null 형상 객체를 geo_json 유형에 매핑합니다.활성화하려면 필드 표시를 geo_shape 유형으로 매핑해야 합니다.

    매개변수 수락

  • geo_shape, 선택 사항) 다각형/다각형의 정점 순서를 설명하는 방법을 정의합니다.이 매개변수는 세 가지 방법으로 각 규칙을 지정할 수 있는 두 좌표계 규칙 (오른손 또는 왼손) 중 하나를 정의합니다.1. 오른손 규칙: orientation, 2, 왼손 정칙: right,ccw,counterclockwise.기본 방향left,cw,clockwise은 시계 반대 순서의 외곽 정점과 시계 반대 순서의 내부 정점(공)을 정의하는 OGC 표준에 부합합니다.counterclockwise 맵에서 이 매개변수를 설정하면 필드의 좌표 목록의 정점 순서가 명시적으로 설정되지만 개별 geo_shape 또는 geo_shape 문서마다 무시할 수 있습니다.
  • GeoJSON, WKT인 경우 형식 오류ignore_malformed 또는 true 형태가 무시됩니다.가짜(기본값)인 경우 형식이 잘못된 GeoJSONWKT 모양이 이상을 일으키고 전체 문서를 거부합니다.
  • GeoJSON, 만약WKT(기본값)이 세 개의 차원점(원본에 저장)을 받아들이지만 위도와 경도 값만 인덱스합니다.3차원은 무시됩니다.ignore_z_value 인 경우 위도 및 경도(2D) 값을 초과하지 않는 지리적 위치가 있으면 예외가 발생하고 전체 문서가 거부됩니다.
  • true, false인 경우 닫히지 않으면 다각형의 선형 루프가 자동으로 닫힙니다.
  • coerce, 필수.다음 표의 Elasticsearch 대응 매개변수
  • true, 필수.필드 값
  • GeoJSON 및 WKT 및 Elasticsearch 데이터 유형 대응 관계


    GeoJSON
    WKT
    Elasticsearch
    묘사
    Point
    POINT
    point
    단일 좌표 위치;Elasticsearch는 좌표type만 사용합니다.
    LineString
    LINESTRING
    linestring
    두 개 이상의 점을 지정하는 임의의 선
    Polygon
    POLYGON
    polygon
    닫힌 다각형, 첫 번째 점과 마지막 점이 일치해야 하기 때문에 n + 1 정점에서 n 모서리가 있는 다각형과 가장 작은 4 정점을 만들어야 합니다.
    MultiPoint
    MULTIPOINT
    multipoint
    연결되지 않았지만 관련될 수 있는 점들
    MultiLineString
    MULTILINESTRING
    multilinestring
    단독 선 직렬 그룹.
    MultiPolygon
    MULTIPOLYGON
    multipolygon
    한 조의 단독 다각형.
    GeometryCollection
    GEOMETRYCOLLECTION
    geometrycollection
    JSON과 비슷한 형태 coordinates, WGS-84 이지만 여러 유형 (예: Point 및 LineString) 이 동시에 존재할 수 있습니다.
    BBOX
    envelope
    왼쪽 위와 오른쪽 아래에만 지정된 경계 사각형이나 봉투를 지정합니다.
    circle
    중심점과 반지름으로 지정된 원은 기본값GeoJSON입니다.

    요청 예제


    공식 문서 보기
    POST /example/_doc
    {
        "location" : {
            "type" : "circle",
            "coordinates" : [101.0, 1.0],
            "radius" : "100m"
        }
    }
    

    좋은 웹페이지 즐겨찾기