단어 분리기 및 형태소 분석기 구성 및 관리

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

단어 분리기와 형태소 분석기는 전체 텍스트 데이터에 대해 언어 분석을 수행합니다. 언어 분석에서는 다음 두 작업을 수행합니다.

  • 단어 경계 찾기(단어 나누기). 단어 분리기는 언어의 어휘 규칙에 따라 단어 경계가 존재하는 위치를 파악하여 개별 단어를 식별합니다. 각 단어(토큰이라고도 함)는 크기를 줄이기 위해 압축된 표현을 사용하여 전체 텍스트 인덱스에 삽입됩니다.

  • 동사 활용(어간 추출). 스테머는 해당 언어의 규칙에 따라 특정 단어의 어간 형태를 생성합니다. 예를 들어 "running", "ran", "runner"는 "run"이라는 단어의 다양한 형태입니다.

단어 분리기 및 형태소 분석기는 언어별로 다릅니다.

단어 분리기와 형태소 분석기는 언어별로 다르며 언어 분석 규칙은 언어마다 다릅니다. 언어별 단어 분리기는 해당 언어에 대해 결과 용어를 보다 정확하게 만듭니다.

SQL Server 데이터베이스 엔진이 지원하는 모든 언어에 제공되는 단어 분기자와 스태머를 사용할 때는 보통 별도의 조치를 취할 필요가 없습니다.

  • 언어 패밀리에 대한 단어 분리기가 있지만 특정 하위 언어에는 없는 경우 주요 언어가 사용됩니다. 예를 들어 프랑스어 단어 분리기는 프랑스어 캐나다어 텍스트를 처리하는 데 사용됩니다.

  • 특정 언어에 사용할 수 있는 단어 분리기가 없으면 중립 단어 분리기가 사용됩니다. 중립 단어 분리기를 사용하면 공백 및 문장 부호와 같은 중립 문자에서 단어가 끊어집니다.

지원되는 언어 목록 가져오기

Full-Text 검색에서 지원하는 언어 목록을 보려면 다음 Transact-SQL 문을 사용하세요. 이 목록에 언어가 있으면 단어 분리기가 해당 언어에 대해 등록되었음을 나타냅니다.

SELECT *
FROM sys.fulltext_languages;

등록된 단어 분리기 목록 가져오기

전체 텍스트 검색에서 언어에 단어 분리기를 사용하려면 해당 단어 분리기를 등록해야 합니다. 등록된 단어 분기자의 경우, 관련 언어 자원이 전체 텍스트 색인 및 쿼리 작업에 활용될 수 있습니다. 이러한 리소스에는 어간 추출기, 노이즈 단어(불용어), 그리고 시소러스 파일이 포함됩니다.

등록된 단어 분리기 구성 요소 목록을 보려면 다음 문을 사용합니다.

EXECUTE sp_help_fulltext_system_components 'wordbreaker';
GO

자세한 내용은 sp_help_fulltext_system_components 참조하세요.

단어 분리기를 추가 또는 제거하는 경우

단어 분리기를 추가, 제거 또는 변경하는 경우 전체 텍스트 인덱싱 및 쿼리에 지원되는 Microsoft Windows 로컬 식별자(LCID) 목록을 새로 고쳐야 합니다. 자세한 내용은 필터 및 단어 분리기 사용자 지정을 참조하세요.

기본 전체 텍스트 언어 옵션 설정

SQL Server의 지역화 버전의 경우, SQL Server 설치 프로그램은 적절한 일치 항목이 있는 경우 기본 전체 텍스트 언어 옵션을 서버 언어로 설정합니다. 지역화되지 않은 버전의 SQL Server의 경우 기본 전체 텍스트 언어 옵션은 영어입니다.

전체 텍스트 인덱스 만들기 또는 변경 시 전체 텍스트 인덱싱된 각 열에 대해 다른 언어를 지정할 수 있습니다. 열에 대해 지정된 언어가 없는 경우 기본값은 구성 옵션 기본 전체 텍스트 언어의 값입니다.

참고

단일 전체 텍스트 쿼리 함수 절에 나열된 모든 열은 쿼리에 옵션이 지정되지 않는 한 LANGUAGE 동일한 언어를 사용해야 합니다. 쿼리되는 전체 텍스트 인덱싱된 열에 사용되는 언어는 전체 텍스트 쿼리 조건자(CONTAINSFREETEXT) 및 함수(CONTAINSTABLEFREETEXTTABLE)의 인수에 대해 수행되는 언어 분석을 결정합니다.

인덱싱된 열의 언어 선택

전체 텍스트 색인을 만들 때는 각 색인된 열마다 언어를 지정하세요. 열에 대해 언어를 지정하지 않으면 시스템 기본 언어가 사용됩니다. 열의 언어는 해당 열을 인덱싱하는 데 사용되는 단어 분리기 및 형태소 분석기를 결정합니다. 또한 해당 언어의 동의어 사전 파일은 열의 전체 텍스트 쿼리에서 사용됩니다.

전체 텍스트 인덱스를 만들기 위해 열 언어를 선택할 때 고려할 몇 가지 사항이 있습니다. 이러한 고려 사항은 전체 텍스트 엔진으로 텍스트를 토큰화한 다음 인덱싱하는 방법과 관련이 있습니다. 자세한 내용은 전체 텍스트 색인 작성 시 언어 선택을 참조하세요.

특정 열의 단어 분리기 언어를 보려면 다음 문을 실행합니다.

SELECT language_id AS 'LCID'
FROM sys.fulltext_index_columns;

자세한 내용은 sys.fulltext_index_columns 참조하세요.

단어 분리 시간 제한 오류 문제 해결

단어 분리 시간 제한 오류는 다양한 상황에서 발생할 수 있습니다. 이러한 상황 및 각 상황에서 대응하는 방법에 대한 자세한 내용은 MSSQLSERVER_30053 참조하세요.

MSSQLSERVER_30053 오류에 대한 정보

속성
제품 이름 SQL 서버
이벤트 ID 30053
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 FTXT_QUERY_E_WORDBREAKINGTIMEOUT
메시지 텍스트 전체 텍스트 쿼리 문자열에 대한 단어 분리 시간이 초과되었습니다. 이 문제는 단어 분리기가 전체 텍스트 쿼리 문자열을 처리하는 데 시간이 오래 걸리거나 서버에서 많은 수의 쿼리가 실행되는 경우에 발생할 수 있습니다. 더 가벼운 부하로 쿼리를 다시 실행해 보세요.

설명

다음과 같은 상황에서 단어 분리 시간 제한 오류가 발생할 수 있습니다.

  • 쿼리 언어의 단어 분리기가 잘못 구성되었습니다. 예를 들어, 레지스트리 설정이 잘못되어 있습니다.

  • 단어 분리기가 특정 쿼리 문자열에 대해 오작동합니다.

  • 단어 분리기가 특정 쿼리 문자열에 대해 너무 많은 데이터를 반환합니다. 초과 데이터는 잠재적인 버퍼 오버런 공격으로 간주되어 워드 브레이킹 서비스를 호스팅하는 필터 데몬 프로세스(fdhost.exe)를 종료합니다.

  • 필터 데몬 프로세스 구성이 올바르지 않은 경우

    가장 일반적인 구성 문제는 암호 만료 또는 필터 디먼 계정 로그온을 방지하는 도메인 정책입니다.

  • 서버 인스턴스에서 매우 많은 쿼리 워크로드가 실행되고 있습니다. 예를 들어, 워드 브레이커가 전체 텍스트 쿼리 문자열을 처리하는 데 오랜 시간이 걸리거나, 서버에서 많은 쿼리가 실행 중일 수 있습니다. 이것은 가능성이 가장 낮은 원인입니다.

사용자 작업

다음과 같이 시간 제한의 가능한 원인에 적합한 사용자 작업을 선택합니다.

가능한 원인: 사용자 작업
쿼리 언어의 단어 분리기가 잘못 구성되었습니다. 타사 단어 분리기를 사용하는 경우 운영 체제에 잘못 등록되었을 수 있습니다. 이 경우 단어 분리기를 다시 등록하십시오. 자세한 내용은 Full-Text Search에서 사용한 단어 분리기를 이전 버전으로 되돌리기를 참조하세요.
단어 분리기가 특정 쿼리 문자열에 대해 오작동합니다. 워드 브레이커가 데이터베이스 엔진에서 지원된다면 Microsoft 고객 서비스 및 지원 센터에 연락하세요.
단어 분리기가 특정 쿼리 문자열에 대해 너무 많은 데이터를 반환합니다. 워드 브레이커가 데이터베이스 엔진에서 지원된다면 Microsoft 고객 서비스 및 지원 센터에 연락하세요.
필터 데몬 프로세스 구성이 올바르지 않은 경우 현재 암호를 사용하고 있고 도메인 정책이 필터 디먼 계정의 로그온을 차단하지 않는지 확인합니다.
서버 인스턴스에서 매우 많은 쿼리 워크로드가 실행되고 있습니다. 더 가벼운 부하로 쿼리를 다시 실행해 보세요.

업데이트된 단어 분리기의 영향 이해

각 데이터베이스 엔진 버전은 언어 규칙이 수정된 업데이트된 단어 분열자를 포함할 수 있습니다. 이러한 업데이트된 단어 분리기는 이전 버전의 데이터베이스 엔진에서 가져온 전문 인덱스의 단어 분리기와 다르게 동작할 수 있습니다.

이는 데이터베이스가 현재 데이터베이스 엔진 버전으로 업그레이드될 때 전체 텍스트 카탈로그를 가져온 경우 의미가 큽니다. 이제 전체 텍스트 카탈로그의 전체 텍스트 인덱스에 사용되는 하나 이상의 언어가 새 단어 분리기와 연결될 수 있습니다. 자세한 내용은 전체 텍스트 검색 업그레이드를 참조하세요.