Elasticsearch 지리 데이터 유형
10871 단어 문서 번역
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
형태가 무시됩니다.가짜(기본값)인 경우 형식이 잘못된 GeoJSON
및 WKT
모양이 이상을 일으키고 전체 문서를 거부합니다.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"
}
}