전체 텍스트 검색 쿼리

Microsoft SQL Server 2005에서 전체 텍스트 쿼리를 작성하려면 CONTAINS 및 FREETEXT Transact-SQL 조건자와 CONTAINSTABLE 및 FREETEXTTABLE 행 집합 반환 함수를 사용하는 방법을 알아야 합니다.

CONTAINS 및 FREETEXT 조건자는 SELECT 문의 WHERE 절에만 사용할 수 있습니다. CONTAINSTABLE 및 FREETEXTTABLE 행 집합 반환 함수는 SELECT 문의 FROM 절에 사용할 수 있습니다.

CONTAINS 조건자는 텍스트 데이터가 포함된 열을 검색할 수 있도록 다양한 구문을 지원합니다.

  • 하나 이상의 특정 단어 또는 구(단순 단어)
    전체 텍스트 검색에서 단어는 토큰으로 간주됩니다. 토큰은 지정된 언어의 언어 규칙에 따라 해당 단어 분리기에 의해 식별됩니다. 올바른 구는 여러 단어로 구성됩니다. 문장 부호는 있을 수도 있고 없을 수도 있습니다. 예를 들어 "croissant"은 단어이고 "café au lait"는 구입니다. 이와 같은 단어 및 구를 단순 단어라고 합니다.
  • 특정 단어의 활용 형태(생성 단어)
    예를 들어 "drive"라는 단어의 활용 형태를 검색한다고 가정합니다. 테이블의 여러 행에 "drive", "drives", "drove", "driving", "driven" 등의 단어가 포함되어 있는 경우 이러한 각 단어는 drive라는 단어를 활용하여 생성된 것이므로 모두 결과 집합에 포함됩니다.
  • 특정 단어의 동의어 형태(동의어 사전)
    예를 들어 동의어 사전에 "{car, automobile, truck, van}" 항목을 추가하면 "car"라는 단어의 동의어 형태를 검색할 수 있습니다. "automobile", "truck", "van" 또는 "car"라는 단어는 각각 "car"라는 단어를 포함하는 동의어 확장 집합에 속하므로 이러한 단어를 포함하는 쿼리된 테이블의 모든 행이 결과 집합에 나타납니다. 동의어 사전 파일 구조에 대한 자세한 내용은 동의어 사전 파일 구성을 참조하십시오.
  • 단어가 특정 텍스트로 시작하는 단어나 구(접두사 단어)
    구의 경우 구에 포함된 각 단어는 접두사로 간주됩니다. 예를 들어 "auto tran*"는 "automatic transmission" 및 "automobile transducer"와 일치하지만 "automatic motor transmission"과는 일치하지 않습니다.
  • 가중치를 사용하는 단어나 구(가중치 단어)
    예를 들어 여러 단어를 검색하는 쿼리에서 각 검색 단어에 검색 조건에 있는 다른 단어에 대한 상대적 중요도를 나타내는 가중치를 할당할 수 있습니다. 이러한 쿼리 유형의 결과에서는 검색 단어에 지정한 상대적 가중치에 따라 관련성이 가장 높은 행이 먼저 반환됩니다.
  • 다른 단어나 구와 근접한 단어나 구(근접 단어)
    예를 들어 "ice"라는 단어가 "hockey"라는 단어와 근접해 있거나 "ice skating"이라는 구가 "ice hockey"라는 구와 근접해 있는 행을 검색할 수 있습니다.

CONTAINS 조건자는 부울 연산자인 AND, OR, AND NOT을 사용하여 위와 같은 단어를 서로 결합할 수 있습니다. 예를 들어 전체 텍스트 인덱싱된 열에서 "latte"와 "New York-style bagel"이 포함된 행을 모두 검색할 수 있습니다. AND NOT을 사용하여 단어를 부정할 수도 있습니다(예: "bagel" and not "cream cheese").

CONTAINS를 사용할 때 SQL Server는 검색 조건에서 의미 없는 단어를 버립니다. 의미 없는 단어란 "a", "and", "is", "the" 등과 같이 자주 사용되지만 특정 텍스트 검색에는 도움이 되지 않는 단어입니다. 의미 없는 단어에 대한 자세한 내용은 의미 없는 단어를 참조하십시오.

참고 항목

개념

전체 텍스트 검색을 사용하여 SQL Server 쿼리

관련 자료

CONTAINS(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기