Saturation 함수를 이용해 매치점수와 인기도 기반 검색 경험 개선하기
모의주식 투자 웹 서비스 '무주시'를 리팩토링하며 주식 종목 검색 기능을 개선하기로 결정하였다. MongoDB의 정규식 매칭 기능을 활용하여 결과를 조회하고, 검색 빈도로 정렬하여 반환하던 구조에서 MySQL로 데이터를 이관하고 Lucene을 통하여 자체 인덱스를 구축하여 검색 경험을 개선하였다. 최종적으로 검색 결과를 우선 순위대로 정렬하기 위하여 최종 점수를 계산할 때, 검색어와 결과 매칭 점수와 검색 빈도(인기도)를 기반으로 최종 점수를 도출하는 과정과 그 과정에서 Saturation 함수를 사용한 경험을 정리하고자 한다.