Prompt Detail:
위 예시 쿼리에서는, sort
파라미터를 사용하여 검색 결과를 거리순으로 정렬하고 있습니다. 검색 결과에서 각 문서의 거리 정보를 가져오려면, 검색 쿼리에서 _geo_distance
필드와 함께 script_fields
파라미터를 사용하여 추가 필드를 지정할 수 있습니다.
다음은 _geo_distance
필드와 함께 script_fields
파라미터를 사용하여 거리 정보를 추가하는 예시 쿼리입니다.
bashPOST /my_index/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"_geo_distance": {
"location": {
"lat": 37.5,
"lon": -122.4
},
"order": "asc",
"unit": "km",
"distance_type": "plane"
}
}
],
"script_fields": {
"distance": {
"script": {
"lang": "painless",
"source": "doc['location'].arcDistance(params.lat, params.lon)",
"params": {
"lat": 37.5,
"lon": -122.4
}
}
}
}
}
위 쿼리에서 script_fields
파라미터는 distance
라는 새로운 필드를 추가하고 있습니다. script
필드는 각 문서의 location
필드에서 지정된 위치 (params.lat
및 params.lon
)와의 거리를 계산합니다. 계산된 거리는 검색 결과에 포함되어 반환됩니다.
이 쿼리를 실행하면, 거리 정보가 추가된 검색 결과가 반환됩니다. 추가된 distance
필드는 각 문서의 검색 중심 위치에서의 거리를 나타냅니다. 이 예제에서는 arcDistance
함수를 사용하여 거리를 계산하고 있습니다. 이 함수는 대부분의 지구 모델에 대해 정확한 값을 반환하는 좌표계 거리 측정 방법을 사용합니다.