동의어 사전 구성

SQL Server에서 전체 텍스트 쿼리는 동의어 사전을 사용하여 사용자 지정 용어의 동의어를 검색할 수 있습니다. SQL Server 동의어 사전은 특정 언어에 대한 동의어 집합을 정의하는데, 시스템 관리자는 확장 집합과 교체 집합의 두 형식으로 정의할 수 있습니다. 전체 텍스트 데이터에 맞게 동의어 사전을 개발하면 해당 데이터에 대한 전체 텍스트 쿼리의 범위를 효과적으로 넓힐 수 있습니다. 동의어 사전 검색은 FORMSOF THESAURUS 절을 지정하는 CONTAINS 및 CONTAINSTABLE 쿼리와 FREETEXT 및 FREETEXTABLE 쿼리에 대해서만 수행됩니다.

서버 인스턴스의 전체 텍스트 검색 쿼리가 지정된 언어에서 동의어를 찾도록 하려면 해당 언어에 대한 동의어 사전 매핑(동의어)을 정의해야 합니다. 각 동의어 사전은 다음을 정의하도록 수동으로 구성해야 합니다.

  • 분음 부호 설정

    지정된 동의어 사전에 대해 모든 검색 패턴은 물결표(~), 양음 악센트 표시(´) 또는 움라우트(¨) 등의 분음 기호를 구분하거나 구분하지 않습니다(즉, 악센트 구분 또는 악센트 구분 안 함). 예를 들어 전체 텍스트 쿼리에서 "café" 패턴을 다른 패턴으로 바꾸도록 지정한다고 가정해 보겠습니다. 동의어 사전이 악센트를 구분하지 않으면 전체 텍스트 검색 시 "café" 및 "cafe" 패턴이 바뀝니다. 동의어 사전이 악센트를 구분하면 전체 텍스트 검색 시 "café" 패턴만 바뀝니다. 기본적으로 동의어 사전은 악센트를 구분하지 않습니다.

    [!참고]

    분음 기호에 대한 자세한 내용은 MSN Encarta Encyclopeida의 분음 기호(Diacritical Mark)를 참조하십시오.

  • 확장 집합

    확장 집합은 전체 텍스트 쿼리에 의해 서로 대체되는 "writer", "author" 및 "journalist"와 같은 동의어 그룹을 포함합니다. 확장 집합에 동의어에 대한 일치 항목이 있는 쿼리는 확장 집합의 다른 모든 동의어를 포함하도록 확장됩니다.

    자세한 내용은 이 항목의 뒷부분에 나오는 "확장 집합의 XML 구조"를 참조하십시오.

  • 교체 집합

    교체 집합에는 대체 집합으로 바꿀 텍스트 패턴이 포함되어 있습니다. 예를 보려면 이 항목의 뒷부분에 나오는 "교체 집합의 XML 구조" 섹션을 참조하십시오.

[!참고]

동의어 사전 파일에 대한 제한 및 권장 사항은 방법: 동의어 사전 파일 편집(전체 텍스트 검색)을 참조하십시오.

SQL Server는 지원되는 각 언어당 하나의 XML 동의어 사전 파일을 제공합니다. 이러한 파일은 기본적으로 비어 있습니다. 파일에는 모든 SQL Server 동의어 사전에 공통적인 최상위 XML 구조와 주석 처리된 예제 동의어 사전만 포함되어 있습니다.

이 항목에서는 이 태스크를 수행하는 데 도움이 되는 다음과 같은 정보를 제공합니다.

  • 동의어 사전 파일의 초기 내용

  • 동의어 사전 파일의 위치

  • 쿼리에서 동의어 사전 파일을 사용하는 방법

  • 동의어 사전 파일의 구조 이해

  • 동의어 사전 파일 사용

동의어 사전 파일의 초기 내용

SQL Server 2008과 함께 출시되는 동의어 사전 파일에는 모두 다음 XML 코드가 포함됩니다.

<XML ID="Microsoft Search Thesaurus">

<!--  Commented out

    <thesaurus xmlns="x-schema:tsSchema.xml">
<diacritics_sensitive>0</diacritics_sensitive>
        <expansion>
            <sub>Internet Explorer</sub>
            <sub>IE</sub>
            <sub>IE5</sub>
        </expansion>
        <replacement>
            <pat>NT5</pat>
            <pat>W2K</pat>
            <sub>Windows 2000</sub>
        </replacement>
        <expansion>
            <sub>run</sub>
            <sub>jog</sub>
        </expansion>
    </thesaurus>
-->
</XML>

[맨 위]

동의어 사전 파일의 위치

동의어 사전 파일의 기본 위치는 다음과 같습니다.

<SQL_Server_data_files_path>\MSSQL10_50.MSSQLSERVER\MSSQL\FTDATA\

이 기본 위치에는 다음 파일이 포함되어 있습니다.

  • 언어별 동의어 사전 파일

    설치 중에 빈 동의어 사전 파일이 앞서 언급된 위치에 설치됩니다. 지원되는 각 언어에 대해 별도의 파일이 제공됩니다. 시스템 관리자는 이러한 파일을 사용자 지정할 수 있습니다.

    동의어 사전 파일의 기본 파일 이름은 다음 형식을 사용합니다.

    ‘ts’ + <three-letter language-abbreviation> + '.xml'

    지정된 언어에 대한 동의어 사전 파일의 이름은 레지스트리 키의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<instance-name>\MSSearch\<language-abbrev> 값에 지정됩니다.

  • 전역 동의어 사전 파일

    빈 전역 동의어 사전 파일인 tsGlobal.xml

레지스트리 키를 변경하여 동의어 사전 파일의 위치와 이름을 바꿀 수 있습니다. 각 언어에 대해 동의어 사전 파일의 위치는 레지스트리의 다음 값에 지정됩니다.

HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/<instance name>/MSSearch/Language/<language-abbreviation>/TsaurusFile

전역 동의어 사전 파일은 LCID 0의 중립 언어에 해당합니다. 이 값은 관리자만 변경할 수 있습니다.

[맨 위]

쿼리에서 동의어 사전 파일을 사용하는 방법

동의어 사전 쿼리는 언어별 동의어 사전과 전역 동의어 사전을 모두 사용합니다. 이 쿼리는 먼저 언어별 파일을 조회한 다음 이미 로드되지 않은 경우 처리를 위해 해당 파일을 로드합니다. 이 쿼리는 동의어 사전 파일의 확장 집합 규칙과 교체 집합 규칙으로 지정된 언어별 동의어를 포함하도록 확장됩니다. 그런 다음 전역 동의어 사전에 대해 이러한 단계가 반복됩니다. 그러나 용어가 이미 언어별 동의어 사전 파일에서 일치 항목의 일부인 경우 해당 용어는 전역 동의어 사전에서 일치 항목으로 적합하지 않습니다.

[맨 위]

동의어 사전 파일의 구조 이해

각 동의어 사전 파일은 ID가 Microsoft Search Thesaurus인 XML 컨테이너와, 예제 동의어 사전을 포함하는 주석(<!---->)을 정의합니다. 동의어 사전은 다음과 같이 분음 부호, 확장 집합, 교체 집합을 정의하는 자식 요소의 예제가 포함된 <thesaurus> 요소에 정의됩니다.

  • 분음 부호 설정의 XML 구조

    동의어 사전의 분음 부호 설정은 단일 <diacritics_sensitive> 요소에 지정됩니다. 이 요소는 다음과 같이 악센트 구분 여부를 제어하는 정수 값을 포함합니다.

    분음 부호 설정

    XML

    악센트 구분 안 함

    0

    <diacritics_sensitive>0</diacritics_sensitive>

    악센트 구분

    1

    <diacritics_sensitive>1</diacritics_sensitive>

    [!참고]

    이 설정은 파일에서 한 번만 적용될 수 있으며 해당 파일의 모든 검색 패턴에 적용됩니다. 개별 패턴에 대해서는 이 설정을 지정할 수 없습니다.

  • 확장 집합의 XML 구조

    각 확장 집합은 <expansion> 요소로 묶입니다. 확장 내에서 <sub> 요소에 하나 이상의 대체 단어를 지정합니다. 확장 집합에 서로의 동의어인 대체 그룹을 지정할 수 있습니다.

    예를 들어 확장 섹션을 편집하여 대체 단어 "writer", "author" 및 "journalist"를 동의어로 처리할 수 있습니다. 하나의 대체 단어에 여러 일치 항목을 포함하는 전체 텍스트 검색 쿼리는 확장 집합에 지정된 다른 모든 대체 단어를 포함하도록 확장됩니다. 따라서 위 예에서 "author"라는 단어에 대해 FORMS OF THESAURUS 또는 FREETEXT 쿼리를 실행하면 전체 텍스트 검색에 "writer" 및 "journalist"라는 단어를 포함하는 검색 결과가 반환됩니다.

    다음은 위 예에 대한 확장 집합 섹션을 나타낸 것입니다.

     <expansion>
             <sub>writer</sub>
             <sub>author</sub>
             <sub>journalist</sub>
     </expansion>
    
  • 교체 집합의 XML 구조

    각 교체 집합은 <replacement> 요소로 묶입니다. 이 요소 내에서 동의어당 하나씩 1개 이상의 패턴을 <pat> 요소에 지정하고, 0개 이상의 대체 단어를 <sub> 요소에 지정할 수 있습니다. 대체 집합으로 바꿀 패턴을 지정할 수 있습니다. 패턴 및 대체 집합에는 단어 또는 일련의 단어를 포함할 수 있습니다. 패턴에 지정된 대체 단어가 없는 경우 사용자 쿼리에서 해당 패턴이 제거됩니다.

    예를 들어 "W2K" 패턴을 "Windows 2000" 또는 "XP" 대체 단어로 바꾸는 쿼리를 원하는 경우 "W2K"에 대해 전체 텍스트 쿼리를 실행하면 전체 텍스트 검색에 "Windows 2000" 또는 "XP"를 포함하는 검색 결과만 반환되고 "W2K"를 포함하는 결과는 반환되지 않습니다. 이는 "W2K" 패턴이 "Windows 2000" 및 "XP" 패턴으로 "바뀌었기" 때문입니다.

    다음은 위 예에 대한 교체 집합 섹션을 나타낸 것입니다.

     <replacement>
             <pat>W2K</pat>
             <sub>Windows 2000</sub>
             <sub>XP</sub>
     </replacement>
    

    패턴이 유사하게 일치하는 두 개의 교체 집합이 있는 경우 두 개 중 더 긴 것이 우선적으로 적용됩니다. 예를 들어 "Internet Explorer online community"에 대해 FORMS OF THESAURUS 쿼리를 실행하고 다음과 같은 교체 집합이 있는 경우 "Internet Explorer" 교체 집합이 "Internet" 교체 집합보다 우선적으로 적용됩니다. 따라서 쿼리가 "IE online community" 또는 "IE 5 online community"로 처리됩니다.

    <replacement>
             <pat>Internet</pat>
             <sub>intranet</sub>
    </replacement>
    

    <replacement>
             <pat>Internet Explorer</pat>
             <sub>IE</sub>
             <sub>IE 5</sub>
    </replacement>
    

[맨 위]

동의어 사전 파일 사용

동의어 사전 파일을 편집하려면

업데이트된 동의어 사전 파일을 로드하려면

단어 분리기, 동의어 사전 및 중지 목록 조합의 토큰화 결과를 보려면