BM25 개요 — similarity 설정과 기본 유사도
BM25 개요
Elasticsearch는 필드 단위로 텍스트 스코어링(유사도) 알고리즘을 바꿀 수 있는 similarity 설정을 제공해요. 기본값은 BM25인데, 필요에 따라 boolean 같은 다른 알고리즘으로 바꿀 수도 있어요.
설정 가능한 필드
similarity는 text, keyword 같은 텍스트 계열 필드 타입에서만 지원돼요. 수치형이나 날짜형 필드에는 적용할 수 없어요.
커스텀 유사도
내장 유사도 파라미터를 조정해 커스텀 유사도를 만들 수도 있어요. 예를 들어 BM25의 k1·b 값을 바꿔서 자기 도메인의 특성을 살린 스코어링을 정의할 수 있어요. 이건 '전문가 옵션(expert options)'이라 신중하게 다뤄야 해요.
BM25가 기본인 이유
BM25는 단어 빈도가 늘어나도 점수가 기하급수로 커지지 않도록 포화시키고, 문서가 길수록 단순 빈도를 깎아주는 정규화를 넣어요. 그래서 짧은 필드(이름 등)에서 특히 일관된 순위가 나와요. 검색 기본이 궁금할 때는 이 관점에서 BM25를 보면 이해가 빨라요.