Geodistance 쿼리
Geodistance 쿼리
geo_distance 쿼리는 제공된 지리적 좌표(geopoint)에서 지정된 거리 안에 있는 geopoint를 가진 문서를 반환해요. 여러 geopoint를 가진 문서는 그 중 하나 이상이 쿼리와 일치하면 쿼리와 일치합니다.
출처: 문서
본문
geo_distance 쿼리는 제공된 geopoint에서 지정된 거리 안에 있는 geopoint를 가진 문서를 반환해요. 여러 geopoint를 가진 문서는 그 중 하나 이상이 쿼리와 일치하면 쿼리와 일치해요.
검색 대상 문서 필드는 geo_point로 매핑되어야 해요.
예시 (Example)
point 필드를 geo_point로 매핑한 매핑을 생성하세요.
PUT testindex1
{
"mappings": {
"properties": {
"point": {
"type": "geo_point"
}
}
}
}
위도와 경도를 지정해 geopoint를 인덱싱하세요.
PUT testindex1/_doc/1
{
"point": {
"lat": 74.00,
"lon": 40.71
}
}
point 객체가 지정된 점에서 지정된 거리 안에 있는 문서를 검색하세요.
GET /testindex1/_search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"geo_distance": {
"distance": "50mi",
"point": {
"lat": 73.5,
"lon": 40.5
}
}
}
}
}
}
응답에는 일치하는 문서가 포함돼요.
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1,
"hits": [
{
"_index": "testindex1",
"_id": "1",
"_score": 1,
"_source": {
"point": {
"lat": 74,
"lon": 40.71
}
}
}
]
}
}
파라미터 (Parameters)
geodistance 쿼리는 다음 파라미터를 받아들여요.
| 파라미터 | 데이터 타입 | 설명 |
|---|---|---|
_name |
String | 필터의 이름. 선택 사항. |
distance |
String | 점을 일치시킬 거리. 이 거리는 지정된 점을 중심으로 하는 원의 반지름이에요. 지원되는 거리 단위는 Distance units를 참조하세요. 필수. |
distance_type |
String | 거리를 계산하는 방법을 지정함. 유효한 값은 arc 또는 plane(더 빠르지만 긴 거리나 극에 가까운 점에는 부정확). 선택 사항. 기본값은 arc. |
validation_method |
String | 검증 방법. 유효한 값은 IGNORE_MALFORMED(유효하지 않은 좌표의 geopoint를 수용), COERCE(좌표를 유효한 값으로 강제 변환 시도), STRICT(좌표가 유효하지 않으면 오류 반환). 선택 사항. 기본값은 STRICT. |
ignore_unmapped |
Boolean | 매핑되지 않은 필드를 무시할지 여부를 지정함. true로 설정하면 쿼리는 매핑되지 않은 필드를 포함한 문서를 반환하지 않음. false로 설정하면 필드가 매핑되지 않았을 때 예외가 던져짐. 선택 사항. 기본값은 false. |
허용 형식 (Accepted formats)
문서를 인덱싱하고 문서를 검색할 때 geopoint 필드 타입이 수용하는 어떤 형식으로든 geopoint 좌표를 지정할 수 있어요.