← 학습 카테고리

Learn

Elasticsearch

50개 모듈 · 현재 27번째

Elasticsearch 모듈 27/50 elasticsearch-learn-27

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 테스트를 매번 눈으로 훑어보는 대신 일관된 숫자로 비교 가능
  • 감이 아니라 데이터 기반으로 관련도 개선 여부를 검증하는 게 핵심 실무 가치