[WHY 시리즈 2] E.002 — 상점 검색 결과 개선 (1)

  • 별도 검색 엔진을 도입하지 않음
  • $geoNear 사용으로 인해, MongoDB의 text search 사용 못 함
  • 검색 결과의 순서를 결정하는 로직에서 거리만 고려함

Why?

1. $geoNear 사용 제거

우리는 MongoDB aggregation을 사용 중이며, aggregation 시 1개의 index만 사용할 수 있다. 앞서 말한 것처럼 $geoNear(2dsphere index)를 이미 사용 중이기 때문에 MongoDB의 text index를 이용한 text search를 활용할 수가 없었다. 우리는 $geoNear를 제거하고 text search를 사용하기로 결정했다.

2. text score 적용

앞에서 언급한 것 처럼 기존에는 오직 거리만을 기준으로 가까운 상점이 검색 결과의 상위에 노출되었다. MongoDB의 text search를 사용하면서 얻을 수 있는 text score도 검색 결과의 순서를 결정하는 계산 로직에 포함시키기로 했다.

나는 말만 많을 뿐 실제 모든 액션을 멋지게 수행해주는 백엔드 챕터 멤버들.png

--

--

programming x writing

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store