RANK BY 절
쿼리의 결과에는 쿼리에서 반환된 행과 순위 열이 SELECT 절에 포함된 경우 각 행의 순위 값이 모두 포함됩니다. 순위 값은 검색 엔진에서 계산되며 0에서 1000 범위의 정수로 반환됩니다. 순위 결과를 더 의미 있게 만들기 위해 쿼리는 RANK BY 절에서 원시 순위 값을 계산하는 방법을 제어할 수 있습니다.
이 항목은 다음과 같이 구성됩니다.
RANK BY 절
RANK BY 절의 구문은 다음과 같습니다.
WHERE ( <search_condition> )
RANK BY [ ( ] <rank_specification> [ ) ]
RANK BY 절은 바로 앞의 search_condition 적용되어 다른 검색 조건에서 반환된 행보다 해당 검색 조건에서 반환된 행에 대해 더 낮거나 높은 순위를 효과적으로 지정합니다. search_condition 둘러싼 괄호가 필요합니다. 순위 사양을 둘러싼 괄호는 선택 사항입니다.
둘 이상의 RANK BY 절을 단일 조건에 적용할 수 있습니다. 괄호를 사용하여 추가 RANK BY 절을 하나씩 포함할 수 있습니다.
참고
전체 텍스트 조건자는 0에서 1000 범위의 순위 값을 반환합니다. 전체 텍스트가 아닌 조건자가 일치하는 모든 문서의 순위 값은 1000입니다. 순위 값을 수정하면 이 정보를 고려해야 합니다.
RANKBY 절의 rank_specification 부분은 순위 값에 적용할 하나 이상의 함수를 식별합니다. WEIGHT 함수는 반환된 행의 원시 순위 값에 승수를 적용합니다. 승수가 작을수록 결과 순위 값이 낮아질 수 있습니다. COERCION 함수를 사용하여 반환된 행에 대한 특정 순위 값을 곱하거나, 추가하거나, 설정할 수 있습니다. 각 순위 사양에는 0개 또는 1개의 WEIGHT 함수와 0개 이상의 COERCION 함수가 포함될 수 있습니다. WEIGHT 및 COERCION 함수가 모두 RANK BY 절에 포함된 경우 WEIGHT 함수가 먼저 있어야 합니다.
WEIGHT 함수
WEIGHT 함수의 구문은 다음과 같습니다.
WEIGHT ( <weight_multipler> )
승수는 0.001에서 1.000까지의 10진수여야 합니다. 검색 조건 조건자에서 반환되는 원시 순위 값에 가중치 승수를 곱하여 새 순위 값을 설정합니다.
다음 예제에서 WEIGHT 함수는 System.Document.LastAuthor 필드에 "Theresa"라는 단어가 있는 문서에 System.Author 필드에 "Theresa"가 있는 문서의 순위 값의 절반을 제공합니다.
WHERE CONTAINS ( System.Author,'"Theresa"' )
RANK BY WEIGHT ( 1.000 )
OR
CONTAINS ( System.Document.LastAuthor,'"Theresa"' )
RANK BY WEIGHT ( 0.500 )
참고
CONTAINS 및 FREETEXT 조건자 열 가중치 기능은 검색 용어와 승수("software":0.25) 사이의 콜론을 사용하는 약식 형식을 지원합니다. RANK BY 절은 단축된 형식을 지원하지 않습니다.
RANK BY WEIGHT를 사용하는 경우 제한이 있습니다. 부울 조건을 사용하는 CONTAINS 절에서는 작동하지 않습니다. 예를 들어 다음 예제는 허용되지 않습니다.
CONTAINS ( System.Author,'"Theresa" OR "Teresa"' ) RANK BY WEIGHT ( 0.400 )
강제 변환 함수
순위 강제 변환 함수를 사용하여 반환된 순위 값을 더하거나 곱하거나 특정 값을 할당하여 변경할 수 있습니다.
COERCION 함수의 구문은 다음과 같습니다.
COERCION ( <coercion_operation> , <coercion_value> )
강제 변환 값은 정수 값입니다.
다음 표에서는 사용 가능한 강제 변환 작업 설정을 설명합니다.
강제 변환 작업 | 설명 | 값 범위 |
---|---|---|
ABSOLUTE | 반환되는 순위 값은 강제 변환 값에 지정된 값입니다. | 0에서 1000까지 |
ADD | 반환되는 순위 값은 원시 순위 값과 지정된 강제 변환 값의 합계입니다. | 0.001에서 1.0으로 |
MULTIPLY | 반환되는 순위 값은 원시 순위 값과 지정된 강제 변환 값의 곱입니다. | 0.001에서 1.0으로 |
중요
검색은 0에서 1000 범위의 순위 값만 반환할 수 있습니다.
다음 예제에서는 COERCION 함수를 사용하여 제목에 "computer"가 있는 모든 문서를 1000의 순위로 설정하는 동시에 제목에 "computer"와 "software"가 모두 포함된 문서의 순위를 1/4로 줄입니다.
WHERE CONTAINS ( System.Title, 'computer' )
RANK BY COERCION ( ABSOLUTE , 1000 )
OR
CONTAINS ( System.Title, '"computer" AND "software"' )
RANK BY COERCION ( MULTIPLY, 0.750 )