[TIL] 90일차 _ 번쩍 팀프로젝트 #22

Seoyeon Lee·2026년 2월 10일

Today I Learned ...

오늘은 엘라스틱 서치 검색 엔진을 50% 정도 구현했다!


🖥️ 번쩍 팀프로젝트 #22

저번에는 엘라스틱 서치를 통해 제목 검색이 형태소 분석으로 동작하는 것까지만 확인했는데,
오늘은 엘라스틱 서치를 통해 우리 서비스에 필요한 복합 조건들을 모두 처리했다!

기존에는 레디스 Geospatial을 통해 지리 정보를 계산하고, 여기에서 1차 필터링된 내용들을 토대로 DB에서 복합 조건을 가지고 조회하고 있었다.
그런데, 엘라스틱 서치에서도 반경 범위 내의 내용들을 필터링하거나, bounding box 이내의 내용들을 필터링하는 기능을 지원하고 있기 때문에,
위치 조회와 키워드 검색, 카테고리 필터링, 일정 범위 필터링 등의 모든 내용을 엘라스틱서치에서 한 번에 처리할 수 있게 되었다.

아직 정렬 부분에 대해서 구현이 마무리되지 않았는데, 우리 서비스에서는 거리순, 인기순, 최신 등록순 정렬을 제공하고 있다.
거리순과 최신 등록순 정렬에 대해서는 해당 내용을 엘라스틱 서치 도큐먼트에 저장하고 있기 때문에, 정렬 기능을 사용하는 데에 문제가 없지만,
인기순 정렬에 대해서는 좋아요 수, 조회수 등의 정보가 필요한데, 이 내용은 너무 자주 바뀌기 때문에 엘라스틱 서치 도큐먼트에 저장하지 않고 있었다.
그래서 해당 내용들에 대해 어떻게 정렬 기능을 적용할지 조금 더 고민을 해봐야 할 것 같다.

우리 팀이 작성한 코드는 깃허브를 통해 업로드해두었다.
GitHub 보러가기


🙃 오늘의 느낀점

엘라스틱 서치를 사용해보니 검색 엔진을 만들기에 좋은 기능들이 너무 너무 많더라.
시간과 내 실력만 허락해준다면 정말 많은 기능들을 구현해볼 수 있겠다.
하지만, 처음 이걸 사용해보는 만큼 구조를 잡기가 여전히 어려운데, 이런 저런 레퍼런스를 많이 찾아봐야 할 것 같다.

profile
백엔드 개발자 지망생

0개의 댓글