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 좌표를 지정할 수 있어요.

더 알아보기 (Learn more)