전체 텍스트 검색에 대한 국가별 고려 사항
전체 텍스트 인덱스 생성 시 언어 선택
전체 텍스트 인덱스를 만들기 위해 열 언어를 선택할 때 고려할 몇 가지 사항이 있습니다. 이러한 고려 사항은 SQL Server용 Microsoft 전체 텍스트 검색 엔진(MSFTESQL)이 텍스트를 토큰화한 후 인덱싱하는 방법과 관련이 있습니다. 단어 분리기는 단어 경계에서 인덱싱되는 텍스트를 토큰화합니다. 영어에서는 이러한 단어 경계가 일반적으로 공백이나 특정 형태의 문장 부호입니다. 독일어와 같은 언어에서는 단어 또는 문자를 함께 결합할 수 있으므로 선택한 열 수준 언어가 해당 열의 행에 저장될 언어를 나타내야 합니다. 확실하지 않으면 공백과 문장 부호만 기준으로 토큰화를 수행하는 중립 단어 분리기를 사용하는 것이 좋습니다. 열 수준 언어 선택의 또 다른 이점은 "형태소 분석"입니다. 전체 텍스트 쿼리의 형태소 분석은 특정 언어에서 단어의 모든 형태소(활용) 형태를 검색하는 프로세스로 정의됩니다.
언어 선택 시의 다른 고려 사항은 데이터 표시 방법과 관련이 있습니다. varbinary(max) 열에 저장되지 않은 데이터에 대해서는 특수 필터링이 수행되지 않습니다. 일반적으로 텍스트는 있는 그대로 단어 분리기 구성 요소를 통과합니다. 단어 분리기는 주로 문자 텍스트를 처리합니다. 따라서 HTML과 같은 표시 유형이 텍스트에 포함되어 있을 경우 인덱싱 및 검색 중에 언어 정확도가 떨어질 수 있습니다. 이 경우 두 가지 방법을 선택할 수 있습니다. 권장되는 방법은 단순히 텍스트 데이터를 varbinary(max) 열에 저장하고 해당 문서 유형을 필터링하도록 지정하는 것입니다. 이 방법을 선택할 수 없으면 중립 단어 분리기를 사용하고 가능한 경우 의미 없는 단어 목록에 HTML의 'br'과 같은 표시 데이터를 추가할 수 있습니다.
[!참고] 중립 언어를 지정하면 언어 기반 형태소 분석은 적용되지 않습니다.
언어 지원
Microsoft SQL Server 2005에서 전체 텍스트 쿼리는 전체 텍스트 데이터를 검색할 열에 기본 언어가 아닌 다른 언어를 사용할 수 있습니다. 해당 언어가 지원되고 리소스가 설치되어 있기만 하면 CONTAINS, CONTAINSTABLE, FREETEXT 및 FREETEXTTABLE 쿼리의 LANGUAGE language_term
절에 지정한 언어가 단어 분리, 형태소 분석, 사전 및 의미 없는 단어 처리에 사용됩니다.
다음 표에서는 전체 텍스트 인덱스 데이터가 저장된 언어를 보여 줍니다. 언어는 Microsoft SQL Server 설치 시 선택된 유니코드 데이터 정렬 로캘 식별자를 기준으로 합니다.
유니코드 데이터 정렬 로캘 식별자 | 전체 텍스트 데이터 저장 언어 |
---|---|
중국어 발음 기호(보포모포)(대만) |
중국어(번체) |
중국어 문장 부호 |
중국어(간체) |
중국어 획 수 |
중국어(간체) |
중국어 획 수(대만) |
중국어(번체) |
네덜란드어 |
네덜란드어 |
영국 영어 |
영국 영어 |
프랑스어 |
프랑스어 |
일반 유니코드 |
미국 영어 |
독일어 |
독일어 |
독일어 전화 번호부 |
독일어 |
이탈리아어 |
이탈리아어 |
일본어 |
일본어 |
일본어 유니코드 |
일본어 |
한국어 |
한국어 |
한국어 유니코드 |
한국어 |
스페인어(스페인) |
스페인어 |
스웨덴어/핀란드어 |
스웨덴어 |
이 목록에 없는 다른 유니코드 데이터 정렬 로캘 식별자 값은 공백을 사용하여 단어를 구분하는 중립 언어 단어 분리기와 형태소 분석기에 매핑됩니다.
[!참고] 유니코드 데이터 정렬 로캘 식별자 설정은 전체 텍스트 인덱싱에 적합한 모든 데이터 형식(예: char, nchar 등)에 대해 사용됩니다. char, varchar 또는 text 유형 열의 정렬 순서를 유니코드 데이터 정렬 로캘 식별자 언어와 다른 언어 설정으로 지정해도 전체 텍스트 인덱싱과 char, varchar 및 text 유형 열의 쿼리에서 유니코드 데이터 정렬 로캘 식별자가 계속 사용됩니다.
참고 항목
관련 자료
전체 텍스트 검색 개념
데이터 형식(Transact-SQL)
CONTAINS(Transact-SQL)
CONTAINSTABLE(Transact-SQL)
FREETEXT(Transact-SQL)
FREETEXTTABLE(Transact-SQL)