# 엘라스틱 서치 좌표값 기준 쿼리 ###### tags: `tech sharing` ### 인덱스 맵핑 추가 - 아래와 같이 인덱스에 geo_point라는 타입으로 맵핑해준다. - 맵핑을 따로 해주지 않을 경우 float타입으로 필드가 생성되기 때문이다 ``` location : { type: geo_point } ``` ### 좌표 기준 쿼리문 작성 - 입력된 lat, lon 을 기준으로 5km 이내에 위치한 값들만 반환한다. ``` "query": { "geo_distance": { "distance": "5km", "location": { "lat": 37.5358, "lon": 126.9559 } } } ``` - 우측 아래 의 좌표와 좌측 위의 좌표를 통해 사각형을 만들고 그안의 값들을 반환하는 쿼리 ``` "query": { "geo_bounding_box": { "location": { "bottom_right": { "lat": 37.4899, "lon": 127.0388 }, "top_left": { "lat": 37.5779, "lon": 126.9617 } } } } ``` ### 결론 - 이를 활용해 현재 사용자 위치기반으로 검색기능을 사용할 수 있을 것 같다. ### 문제 - serversideProps로 데이터를 받아올 수가 없을 것 같다. 사용자의 위치를 어떻게 받아올 것인가? [엘라스틱서치 공식문서](https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.6-geo)