--- title: "랭킹 수식" slug: "cloudsearch-ranking" updated: 2026-08-20T09:03:16Z published: 2026-08-20T09:03:16Z canonical: "guide-gov.ncloud-docs.com/cloudsearch-ranking" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide-gov.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # 랭킹 수식

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

검색 결과를 원하는 방식으로 정렬하기 위해 랭킹 수식을 활용할 수 있습니다. 랭킹 수식을 작성하고 검색 시 적용하는 방법에 대해 설명합니다. :::(Info) (참고) 정렬 방식을 별도로 설정하지 않으면 검색 결과는 문서 가중치(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; ``` ### 랭킹 변수 및 속성값 랭킹 수식 작성 시 랭킹 변수와 함께 다양한 속성값을 사용할 수 있습니다. :::(Info) (참고) * 모든 변수는 내부적으로 타입(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` 필드의 파라미터로 랭킹 수식에서 계산한 랭킹 변수를 지정 :::(Info) (참고) * 랭킹 모듈 생성 및 기본 랭킹 설정 방법은 [랭킹 수식](/docs/cloudsearch-searchsettings#랭킹수식)을 참고해 주십시오. * `ranking` 및 `sort` 필드 작성 방법은 [ranking](/docs/cloudsearch-searchquery#ranking1) 및 [sort](/docs/cloudsearch-searchquery#sort1)를 참고해 주십시오. ::: <예시> 기본 랭킹의 랭킹 변수(relevance)를 `sort` 필드의 파라미터로 지정한 검색 쿼리 ```JSON { "search": { "index_name": { "main": [ { "name": "q1", "query": "term" }, { "name": "q2", "query": "test" } ] } }, "sort" : { "relevance": "desc" } } ```