랭킹 평가 API

랭킹 평가 API (Ranking Evaluation API)

Rank Evaluation API는 검색 결과의 랭킹 품질을 평가해요.

도입 버전 1.0

엔드포인트

GET {index_name}/_rank_eval 
POST {index_name}/_rank_eval

쿼리 파라미터

쿼리 파라미터는 선택 사항이에요.

파라미터 데이터 타입 설명
ignore_unavailable Boolean 기본값은 false 예요. false 로 설정하면 인덱스가 닫혀 있거나 없을 때 응답 본문에 오류를 반환해요.
allow_no_indices Boolean 기본값은 true 예요. false 로 설정하면 와일드카드 표현식이 닫혀 있거나 없는 인덱스를 가리킬 때 응답 본문에 오류를 반환해요.
expand_wildcards String open , closed , hidden , none , all 인덱스에 대해 와일드카드 표현식을 확장해요.
search_type String 검색 유형을 query_then_fetch 또는 dfs_query_then_fetch 로 설정해요.

요청 본문 필드

요청 본문에는 파라미터가 하나 이상 포함되어야 해요.

필드 유형 설명
id 문서 또는 템플릿 ID예요.
requests request 필드 섹션 안에 여러 검색 요청을 설정해요.
ratings 문서 관련성 점수예요.
k 쿼리당 반환되는 문서 수예요. 기본값은 10이에요.
relevant_rating_threshold 문서가 관련 있는 것으로 간주되는 임계값이에요. 기본값은 1이에요.
normalize true 로 설정하면 할인 누적 이득(discounted cumulative gain)이 계산돼요.
maximum_relevance expected reciprocal rank 메트릭 사용 시 최대 관련성 점수를 설정해요.
ignore_unlabeled 기본값은 false 예요. true 로 설정하면 라벨이 없는 문서를 무시해요.
template_id 템플릿 ID예요.
params 템플릿에서 사용하는 파라미터예요.

예제 요청

GET /shakespeare/_rank_eval
{
  "requests": [
    {
      "id": "books_query",
      "request": {
        "query": {
          "match": {
            "text": "thou"
          }
        }
      },
      "ratings": [
        {
          "_index": "shakespeare",
          "_id": "80",
          "rating": 0
        },
        {
          "_index": "shakespeare",
          "_id": "115",
          "rating": 1
        },
        {
          "_index": "shakespeare",
          "_id": "117",
          "rating": 2
        }
      ]
    },
    {
      "id": "words_query",
      "request": {
        "query": {
          "match": {
            "text": "art"
          }
        }
      },
      "ratings": [
        {
          "_index": "shakespeare",
          "_id": "115",
          "rating": 2
        }
      ]
    }
  ]
}

예제 응답

{
  "rank_eval": {
    "metric_score": 0.7,
      "details": {
      "query_1": {                           
        "metric_score": 0.9,                      
        "unrated_docs": [                         
          {
            "_index": "shakespeare",
            "_id": "1234567"
          }, ...
        ],
        "hits": [
          {
            "hit": {                              
              "_index": "shakespeare",
              "_type": "page",
              "_id": "1234567",
              "_score": 5.123456789
            },
            "rating": 1
          }, ...
        ],
        "metric_details": {                       
          "precision": {
            "relevant_docs_retrieved": 3,
            "docs_retrieved": 6
          }
        }
      },
      "query_2": { [...] }
    },
    "failures": { [...] }
  }
}

출처: 문서