11.9.3 관련 점수와 순위 매기기
검색 서비스는 엘라스틱서치 기능을 활용하여 검색 결과의 관련성을 평가하고 순위를 매깁니다. 검색어와 문서 간의 연관성을 점수로 계산하고자 단어의 등장 빈도(Term Frequency, TF), 문서 내 중요도를 나타내는 역문서 빈도(Inverse Document Frequency, IDF), 특정 필드에 더 높은 가중치를 주는 필드 부스팅 방식 등을 종합적으로 사용합니다. 이런 점수는 검색 결과가 사용자에게 표시되는 순서를 결정합니다. 필요한 경우 점수 계산 방식을 조정하거나 특정 필드를 강조하여 더 적합한 결과를 보여 주는 것도 가능합니다.
이런 구조를 기반으로 만들면 더 빠르고 효율적으로 검색을 처리할 수 있습니다. 검색 요청이 들어오면 엘라스틱서치를 활용하여 데이터를 색인하고 검색하며, 검색 결과를 관련 점수와 순위 계산 로직을 이용하여 정렬합니다. 또 캐싱을 활용하여 성능을 최적화하고 트윗 서비스, 사용자 서비스와 연동하여 데이터 일관성을 유지하면서 실시간으로 업데이트를 처리할 수 있습니다.
다음 절에서는 X 같은 서비스를 설계하는 데 참고하면 유용한 몇 가지 내용과 모범 사례를 살펴보겠습니다.