다음을 통해 공유


WHERE 절(Windows Search)

쿼리에서 반환된 결과에 문서가 포함되는지 여부를 결정하는 조건은 WHERE 절에 의해 지정됩니다. 가장 높은 수준에서 WHERE 절 구문에는 다음 두 부분이 있습니다.

...WHERE [<group_aliases>] <search_condition>
...WHERE ReuseWhere(<WHEREID>)

절의 선택적 <group_alias> 부분은 하나 이상의 열 그룹에 별칭을 할당하여 복잡한 쿼리를 간소화합니다. 이렇게 하면 URL로 지정된 여러 열에서 동일한 정보를 검색하는 복잡한 쿼리의 가독성을 향상시킬 수 있습니다. 그룹 별칭에 대한 자세한 내용은 WITH -- AS 그룹 별칭 조건자를 참조하세요.

<WHERE 절의 검색 조건> 부분은 검색에 대한 일치 조건을 지정하는 하나 이상의 검색 조건자입니다. 검색 조건자는 일부 값에 대한 몇 가지 사실을 어설션하는 식입니다.

검색 조건의 결과는 문서가 지정된 검색 조건을 충족하는 경우 TRUE 이고, 그렇지 않으면 FALSE 인 부울 값입니다. 결과가 TRUE이면 문서가 반환됩니다. 결과가 FALSE이면 문서가 반환되지 않습니다. Microsoft Windows Search 쿼리에서 반환된 문서에는 검색 조건과 얼마나 일치하는지에 따라 순위 값이 할당됩니다. 각 쿼리 검색 조건에는 반환된 순위 값 수정을 지원하는 RANKBY 절이 포함될 수 있습니다.

ReuseWhere 함수는 동일한 검색 조건 중 일부를 사용하는 여러 쿼리를 보다 효율적으로 만듭니다. 쿼리의 WHERE 절은 쿼리에서 일치하는 항목 집합을 지정합니다. 후속 쿼리는 새 쿼리 WHERE 절의 ReuseWhere 함수를 사용하여 이전 평가에 대해 수행된 작업을 공유할 수 있습니다.

조건자 검색

검색 조건은 사용자가 검색하는 항목을 설명하는 하나 이상의 조건자 또는 검색 조건으로 구성됩니다(예: WHERE System.DateCreated >'2006-04-19'). 검색 조건자는 논리 연산자 AND, OR 또는 NOT을 사용하여 결합할 수 있습니다. 선택적 단항 연산자 NOTAND 에서만 사용할 수 있으며 조건자 또는 검색 조건자의 논리적 값을 부정하는 데만 사용할 수 있습니다. 괄호를 사용하여 논리 용어를 그룹화하고 중첩할 수 있습니다.

다음 표에서는 논리 연산자의 우선 순위 순서를 보여줍니다.

순서(우선 순위) 논리 연산자
첫 번째(가장 높음) 다음이 아님
두 번째
세 번째(최하위) OR

 

동일한 형식의 논리 연산자는 연관성이 있으며 지정된 계산 순서가 없습니다. 예를 들어 논리 결과가 변경되지 않고 (A AND B) AND(C AND D)와 (A AND D) AND(B AND C)를 계산할 수 있습니다.

중요

틀렸습니다. WHERE NOT CONTAINS('computer')

정답: WHERE CONTAINS ('software') and NOT CONTAINS ('computer')

 

복잡한 쿼리에서는 다른 열보다 일부 열의 일치 항목에 더 중점을 두는 것이 좋습니다. 예를 들어 "소프트웨어 디자인"을 설명하는 문서를 검색할 때 문서 제목에서 검색어를 찾는 것이 문서 텍스트에서 개별 단어를 찾는 것보다 더 적합할 수 있습니다. 이러한 방식으로 문서 순위에 영향을 미치기 위해 Microsoft Windows Search 쿼리 언어는 검색 조건의 가중치를 지원합니다. 열 가중치에 대한 자세한 내용은 CONTAINS 조건자FREETEXT 조건자를 참조하세요.

Windows Search에는 전체 텍스트, 전체 텍스트가 아닌 텍스트 및 폴더 깊이 검색의 세 가지 검색 조건자 그룹이 있습니다. 전체 텍스트 검색 조건자는 일반적으로 콘텐츠, 제목 및 기타 열의 의미와 일치하며 언어 일치(예: 대체 단어 양식, 구 및 근접 검색)를 지원합니다. 반면, 전체 텍스트가 아닌 검색 조건자는 지정된 열의 값과 일치하며 특수한 언어 처리를 포함하지 않지만 여러 경우에 문자 기반 패턴 일치를 제공합니다. 폴더 깊이 조건자는 검색 scope 지정된 경로로 제한합니다.

참고

전체 텍스트가 아닌 조건자가 해당 문서에 대해 TRUE 로 평가되므로 쿼리가 문서를 반환하는 경우 순위 값은 1000으로 계산됩니다. 순위 강제 변환 함수를 사용하면 순위 값을 수정할 수 있습니다.

 

다음 표에서는 전체 텍스트, 전체 텍스트가 아닌 및 폴더 깊이 검색 조건자를 설명합니다.

전체 텍스트 조건자 Description
CONTAINS 문서 텍스트 열(예: 제목, 내용)의 용어에 대한 복잡한 검색을 지원합니다. 다양한 형태의 검색어를 검색하고, 용어의 근접성을 테스트하고, 논리적 비교를 수행할 수 있습니다. 검색어에는 와일드카드 문자가 포함될 수 있습니다.
FREETEXT 검색 구의 의미와 일치하는 문서를 검색합니다. 관련 단어 및 유사한 구가 일치하며 문서가 검색 구와 얼마나 일치하는지에 따라 순위 열이 계산됩니다. 검색어에는 와일드카드 문자가 포함될 수 없습니다.

 

전체 텍스트가 아닌 조건자 설명
LIKE 열 값은 와일드카드 문자와 단순 패턴 일치를 사용하여 비교됩니다.
리터럴 값 비교 열 값은 문자열, 날짜, 타임스탬프를 나타내는 숫자 및 기타 리터럴 값과 비교됩니다. 이 조건자는 보다 크고 작음과 같은 같음과 불평등을 지원합니다.
다중값(ARRAY) 비교 다중값 열은 다중값 리터럴 배열과 비교됩니다.
NULL 문서에 대해 정의되지 않은 열 값은 NULL 조건자를 사용하여 검색할 수 있습니다.

 

폴더 깊이 Description
SCOPE 특정 폴더 및 모든 하위 폴더를 포함하여 지정된 경로의 심층 통과를 수행합니다.
디렉터리 특정 폴더만 검색하여 지정된 경로의 단순 순회를 수행합니다.

 

예제

WHERE 절의 예는 이전 표에 연결된 개별 조건자 topics 참조하세요.

참조

ReuseWhere 함수

행 집합 속성

FROM 절

검색 SQL 구문 개요

WITH -- AS 그룹 별칭 조건자

SCOPE 및 DIRECTORY 조건자

RANK BY 절

개념

전체 텍스트 조건자

전체 텍스트가 아닌 조건자