Rank Eval API — 검색 관련도를 '느낌'이 아니라 숫자로 평가하기
Elasticsearch Rank Eval API 및 인덱스/컴포넌트 템플릿 공식 문서 종합 (웹 리서치, 2026) — Elastic 공식 문서(reference/elasticsearch/rest-apis/search-rank-eval, manage-data/data-store/templates) Elastic 공식 문서 Rank evaluation API
이 모듈을 다 읽으면
- Rank Eval API가 어떤 세 가지 입력으로 관련도 점수를 계산하는지 설명할 수 있다
- Precision/Recall과 DCG/ERR 계열 지표가 서로 무엇을 다르게 평가하는지 구분할 수 있다
elasticsearch-learn-05에서 다룬 검색 쿼리 자체가 아니라, 그 쿼리가 실제로 얼마나 관련도 높은 결과를 돌려주는지를 사람이 매긴 정답과 비교해 정량적으로 채점하는 Rank Eval API를 정리한다.
세 가지 입력 — 문서 집합, 실제 쿼리, 사람이 매긴 관련도 등급
Rank Eval API를 쓰려면 (1) 평가 대상 인덱스/데이터 스트림, (2) 실제 사용자가 던질 법한 대표적인 검색 쿼리들, (3) 각 쿼리마다 특정 문서가 얼마나 관련 있는지 사람이 미리 매긴 등급, 이 세 가지를 제공해야 한다. API는 각 쿼리를 실제로 실행해서 나온 순위 결과를 이 사람이 매긴 등급과 비교해 정량적인 점수를 계산해준다 — '검색 결과가 좋아 보인다'는 주관적 인상 대신, 재현 가능한 숫자로 관련도를 측정할 수 있게 해준다.
핵심 포인트
- Rank Eval은 (문서 집합, 대표 검색 쿼리들, 쿼리별 문서 관련도 등급) 세 가지를 입력받아 실제 실행 결과를 등급과 비교해 채점
- '결과가 좋아 보인다'는 주관적 인상 대신 재현 가능한 숫자로 관련도를 측정
Precision@K/Recall@K — 순위는 무시하고 '얼마나 많이 맞았나'
Precision@K는 상위 k개 결과 중 실제로 관련 있는 결과의 비율을, Recall@K는 전체 관련 문서 중 상위 k개에 얼마나 포함시켰는지를 측정한다 — 둘 다 '어느 위치에 있었는지'는 무시하고 오직 '집합에 포함됐는가'만 본다는 공통점이 있다. 순위 안에서의 순서 자체가 중요하지 않은 상황(예: 결과를 한꺼번에 훑어보는 UI)에 적합한 지표다.
핵심 포인트
- Precision@K: 상위 k개 중 관련 있는 결과의 비율, Recall@K: 전체 관련 문서 중 상위 k개에 포함된 비율
- 둘 다 결과의 순서(위치)는 무시하고 '집합에 포함됐는가'만 평가하는 집합 기반 지표
MRR과 DCG/ERR — 순위(위치) 자체를 반영
Mean Reciprocal Rank(MRR)는 각 쿼리에서 '첫 번째로 관련 있는 결과'가 몇 번째 위치에 나왔는지의 역수를 평균낸다 — 3번째 위치에서 처음 관련 결과가 나오면 그 쿼리는 1/3점을 받는 식이다. DCG(Discounted Cumulative Gain)는 위치와 등급을 함께 반영해, 관련도가 높은 문서가 상위에 있을수록 사용자에게 더 유용하다는 직관을 점수에 담는다. ERR(Expected Reciprocal Rank)은 한 걸음 더 나아가 사용자가 순서대로 훑어보다가 만족스러운 결과를 찾으면 거기서 멈춘다고 가정한 모델로, 앞쪽에서 이미 관련 있는 문서를 봤다면 뒤쪽 문서의 기여도를 깎아서 계산한다.
핵심 포인트
- MRR: 첫 번째 관련 결과가 나온 위치의 역수를 평균 — 위치가 늦을수록 점수가 낮아짐
- DCG: 위치+등급을 함께 반영해 상위에 있는 고관련도 문서를 더 높이 평가, ERR: 사용자가 순차 탐색하다 만족하면 멈춘다는 가정으로 앞선 관련 문서가 있으면 뒤쪽 기여도를 깎음
실무 가치 — 쿼리 변경·튜닝을 데이터로 비교
이런 지표들의 실무적 가치는 재현성과 객관성에 있다 — 쿼리 문법을 바꾸거나, 랭킹 알고리즘을 튜닝하거나, A/B 테스트로 여러 접근을 비교할 때 매번 사람이 결과를 눈으로 훑어보는 대신 일관된 숫자로 비교할 수 있다. 즉 감으로 판단하는 대신 데이터 기반으로 관련도 개선 여부를 검증할 수 있게 해주는 게 Rank Eval API의 핵심 실무 가치다.
핵심 포인트
- 쿼리 변경/랭킹 알고리즘 튜닝/A-B 테스트를 매번 눈으로 훑어보는 대신 일관된 숫자로 비교 가능
- 감이 아니라 데이터 기반으로 관련도 개선 여부를 검증하는 게 핵심 실무 가치