엘라스틱서치에는 두 가지의 검색이 있다. 하나는 Keyword Search , 다른 하나는. Semantic Search이다.
이 두 검색에는 소위 검색 결과 (즉, 검색 단어의 조건이 매칭되는 문서들)를 도출하는 알고리즘 (점수 계산 방식) 이 다른데, 각각의 알고리즘에 대해서 알아보자. 기본적으로 엘라스틱에서는 매치되는 점수가 높은 문서가 단어와 가장 relevant한 문서라 판단한다.
1. TF/IDF
TF/IDF 알고리즘은 TF , 즉 하나의 문서에 얼마나 검색 단어가 있느냐 / (나누기) IDF, 즉 전체 문서들에서 이 단어가 얼마나 많이 들어있냐로 계산되며 수식은 아래와 같다.
이 수식을 쉽게 파악하려면 파라미터들의 비례, 반비례 관계만 따지면 된다.
정리해보자면, DF 가 높으면 높을 수록 점수가 높아지고, 반대로 전체 문서에서 검색 단어가 많이 쓰이면 그 만큼 의미가 적다 판단하고 점수를 내리게 된다.
2. BM25
BM25는 TF/IDF 알고리즘에서 조금 더 편차를 줄인 방식이다. 먼저 수식을 보자
검색이 어떻게 되는지 말로 설명하기 보다는 명확한 자료를 보는게 빠르겠다.
여기까지는 BM25와 별반 차이가 없어 보인다. 하지만 가장 중요한 차이는 해당 문서의 길이를 고려해 '특정 단어가 출현하는 빈도'를 보다 정밀하게 나타낸다.
'Elastic Search' 카테고리의 다른 글
[ElasticSearch] Dynamic Template (1) | 2024.01.04 |
---|---|
[Elasticsearch] Index Template 와 Alias API (0) | 2023.12.28 |
[ElasticSearch] master노드가 3개 이상 이여야 하는 이유 (1) | 2023.12.06 |
ElasticSearch Analyzer 정리 (1) | 2023.11.28 |
ES - Runtime field (0) | 2023.10.17 |