랭킹 수식
    • PDF

    랭킹 수식

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    검색 결과를 원하는 방식으로 정렬하기 위해 랭킹 수식을 활용할 수 있습니다. 랭킹 수식을 작성하고 검색 시 적용하는 방법에 대해 설명합니다.

    참고

    정렬 방식을 별도로 설정하지 않으면 검색 결과는 문서 가중치(qds)가 높은 순서대로 정렬됩니다.

    랭킹 수식

    랭킹 수식은 검색 결과를 정렬하는 기준인 랭킹 점수를 계산하는 식입니다. 일반적으로 랭킹 점수는 적합도(_relevance)로 나타내며 유사도(_similarity)와 품질(_quality)의 합으로 계산합니다.
    <예시> 도메인 생성 시 제공되는 기본 랭킹(clous)의 랭킹 수식

    _ratio=0.5;
    _quality=1.0;
    _similarity=qds;
    _relevance = _similarity * _ratio + _quality * (1 - _ratio);
    

    랭킹 수식을 직접 작성하면 각 검색 서비스에 알맞은 순서로 검색 결과를 정렬할 수 있습니다.

    랭킹 수식 작성

    랭킹 수식의 기본 작성 방법은 다음과 같습니다.

    • 하나의 함수 형태로 대입문만 사용해 주십시오.
      relevance = qds;
      relevance() = qds; // 위와 완전히 같습니다.
      relevance( x ) = x*qds;
      
    • 모든 행을 세미콜론(;)으로 구분하여 문자열로 입력해 주십시오.
    • 다양한 변수와 속성값, 표현식, 내장 함수를 이용하여 작성해 주십시오.
      <예시> 랭킹 수식 작성 예시
      relevance = min(qry_mtc("q1"), qry_mtc("q2"));
      normalized_qds = qds/qtermc;
      normalized_qds_of_q1 = qry_qds("q1") / qry_qtermc("q1");
      mtratio = mtc/qtermc;
      

    랭킹 변수 및 속성값

    랭킹 수식 작성 시 랭킹 변수와 함께 다양한 속성값을 사용할 수 있습니다.

    참고
    • 모든 변수는 내부적으로 타입(bool, int, double, string)을 가집니다.
    • 언더바(_)로 시작하는 변수는 내부용으로 예약되어 있습니다.

    랭킹 변수

    랭킹 수식 작성 시 사용할 수 있는 랭킹 변수는 다음과 같습니다.

    • 문서 속성값을 나타내는 함수(dp_섹션이름): 섹션 생성 시 설정하는 랭킹 변수
      <예시> 문서 속성값을 이용한 랭킹 수식
      _ratio=0.5;
      _quality= dp_like_cnt * 0.09 + dp_dislike_cnt * 0.01;
      _similarity=qds;
      _relevance = _similarity * _ratio + _quality * (1 - _ratio);
      
    • 원하는 변수를 직접 정의

    질의 속성

    랭킹 수식 작성 시 사용할 수 있는 질의 속성값은 다음과 같습니다.

    • qtermc: 질의의 검색어 수로, qds에 가산되는 텀의 수(Query-Term-Count)
    • qry_qtermc(query_name): 특정 질의(query_name)의 검색어 수로, 복합 질의의 경우에 개별 질의의 검색어 수를 얻기 위해 사용
    • qry_exist(query_name): 특정 질의(query_name)가 존재하는지 여부를 반환
    • epoch_time: 질의 실행 시작 시점의 시간

    문서 점수

    랭킹 수식 작성 시 사용할 수 있는 문서 속성값은 다음과 같습니다.

    • qds: 문서 가중치, 질의 문서 유사도(Query-Document-Score)
    • qry_qds(query_name): 특정 질의(query_name)에 대한 문서 가중치
    • mtc: 검색 대상 문서에 포함된 질의의 텀 수(Matched-Term-Count)
    • qry_mtc(query_name): 특정 질의(query_name)에 대한 검색 대상 문서에 포함된 질의의 텀 수(mtc)

    기타

    랭킹 수식 작성 시 사용할 수 있는 기타 속성값은 다음과 같습니다.

    • total_document_count: 총 검색 결과 문서 수(추정)
      • 문서 업로드 요청이 수행 중인 경우 총 문서 수는 변경될 수 있습니다.

    표현식 및 내장 함수

    랭킹 수식 작성 시 다양한 표현식과 내장 함수를 사용할 수 있습니다.

    표현식

    랭킹 수식 작성 시 사용할 수 있는 표현식은 다음과 같습니다.

    • 산술 연산자: +, -, *, /
    • 비교 연산자: >, <, >=, <=, ==, !=
    • 논리 연산자: |, &, !
    • 상수 표현: 정수, 실수, true, false
    • 조건 표현식: if - then - else

    <예시> 표현식을 이용하여 작성한 랭킹 수식

    mtr = mtc/qtermc;
    quality = 1.0;
    relevance = if mtr >= 0.6 then qds + quality else quality;
    

    내장 함수

    랭킹 수식 작성 시 사용할 수 있는 내장 함수는 다음과 같습니다.

    • min(a, b): 최솟값
    • max(a, b): 최댓값
    • exp(x): 지수
    • log(x): 자연로그
    • log10(x): 로그
    • sqrt(x): 제곱근
    • pow(x, y): x의 y제곱

    랭킹 수식 사용

    작성한 랭킹 수식은 검색 시 검색 쿼리를 다음과 같이 작성하여 사용할 수 있습니다.

    • 랭킹 모듈에 랭킹 수식을 저장한 경우
      • ranking 필드에서 사용할 랭킹 모듈을 지정
      • sort 필드의 파라미터로 랭킹 수식에서 계산한 랭킹 변수를 지정
        • 랭킹 모듈을 기본 랭킹으로 설정하면 ranking 필드를 설정하지 않아도 됩니다.
    • 검색 쿼리에 직접 랭킹 수식을 입력하는 경우
      • ranking 필드에서 랭킹 수식을 직접 입력
      • sort 필드의 파라미터로 랭킹 수식에서 계산한 랭킹 변수를 지정
    참고
    • 랭킹 모듈 생성 및 기본 랭킹 설정 방법은 랭킹 수식을 참조해 주십시오.
    • rankingsort 필드 작성 방법은 rankingsort를 참조해 주십시오.

    <예시> 기본 랭킹의 랭킹 변수(relevance)를 sort 필드의 파라미터로 지정한 검색 쿼리

    {
      "search": {
        "index_name": {
          "main": [
            {
              "name": "q1",
              "query": "term"
            },
            {
              "name": "q2",
              "query": "test"
            }
          ]
        }
      },
      "sort" : {
        "relevance": "desc"
      }
    }
    

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.