검색을 위해 단어 분리기 형태소 분석기 & 관리 구성&(SQL Server)

적용 대상: SQL Server Azure SQL 데이터베이스

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

  • 단어 경계 찾기(단어 분리). 단어 분리기는 해당 언어의 어휘 규칙을 기준으로 단어의 경계를 결정하는 개별 단어를 식별합니다. 각 단어( 토큰이라고도 함)는 압축된 표현으로 크기를 줄여 전체 텍스트 인덱스에 삽입됩니다.

  • 켤레 동사(형태소 분석). 형태소 분석기 는 해당 언어의 규칙에 따라 특정 단어의 굴절형을 생성합니다. 예를 들어 "running", "ran" 및 "runner"는 "run"이라는 단어의 여러 가지 형태입니다.

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

단어 분리기와 형태소 분석기는 언어별로 제공되며 언어 분석 규칙은 언어마다 다릅니다. 언어별 단어 분리기는 해당 언어에 맞는 보다 정확한 결과를 반환할 수 있습니다.

SQL Server에서 지원하는 모든 언어에 대해 제공되는 단어 분리기 및 형태소 분석기를 사용하기 위해 일반적으로 다른 작업을 수행할 필요가 없습니다.

  • 해당 언어군의 단어 분리기만 있고 특정 하위 언어의 단어 분리기가 없으면 주 언어가 사용됩니다. 예를 들어 프랑스어 단어 분리기를 사용하여 프랑스어(캐나다) 텍스트를 처리합니다.
  • 특정 언어의 단어 분리기를 사용할 수 없으면 중립 단어 분리기가 사용됩니다. 중립 단어 분리기를 사용하면 공백 및 문장 부호 표시와 같은 중립 문자에서 단어가 분리됩니다.

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

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

SELECT * FROM sys.fulltext_languages

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

전체 텍스트 검색에서 언어에 대한 단어 분리기를 사용하려면 단어 분리기가 등록되어 있어야 합니다. 단어 분리기가 등록되면 형태소 분석기, 의미 없는 단어(중지 단어) 및 동의어 사전 파일과 같은 관련 언어의 리소스도 전체 텍스트 인덱싱 및 쿼리 작업에 사용할 수 있습니다.

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

EXEC sp_help_fulltext_system_components 'wordbreaker';  
GO  

추가 옵션 및 자세한 내용은 sp_help_fulltext_system_components(Transact-SQL)을 참조하세요.

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

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

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

지역화된 SQL Server버전의 경우 일치하는 언어가 있으면 SQL Server 설치 프로그램에서 default full-text language 옵션을 서버 언어로 설정합니다. 지역화되지 않은 SQL Server버전의 경우 default full-text language 옵션이 영어입니다.

전체 텍스트 인덱스를 만들거나 변경할 때는 각 전체 텍스트 인덱싱된 열마다 다른 언어를 지정할 수 있습니다. 열에 언어를 지정하지 않으면 기본적으로 구성 옵션 default full-text language의 값이 사용됩니다.

참고

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

인덱싱된 열에 대한 언어 선택

전체 텍스트 인덱스를 만들 때는 각 인덱싱된 열에 대해 언어를 지정하는 것이 좋습니다. 열에 언어를 지정하지 않으면 시스템 기본 언어가 사용됩니다. 열의 언어에 따라 해당 열을 인덱싱하는 데 사용되는 단어 분리기와 형태소 분석기가 결정됩니다. 또한 지정된 언어의 동의어 사전 파일이 해당 열에 대한 전체 텍스트 쿼리에 사용됩니다.

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

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

SELECT language_id AS 'LCID' FROM sys.fulltext_index_columns;

추가 옵션 및 자세한 내용은 sys.fulltext_index_columns(Transact-SQL)을 참조하세요.

단어 분리 시간 초과 오류 해결

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

MSSQLSERVER_30053 오류에 대한 정보

속성
제품 이름 SQL Server
이벤트 ID 30053
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 FTXT_QUERY_E_WORDBREAKINGTIMEOUT
메시지 텍스트 전체 텍스트 쿼리 문자열의 단어 분리 작업이 시간을 초과했습니다. 단어 분리기에서 전체 텍스트 쿼리 문자열을 처리하는 데 오랜 시간이 걸리거나 서버에서 많은 쿼리가 실행되는 경우 이 오류가 발생할 수 있습니다. 부하를 줄여 쿼리를 다시 실행하십시오.

설명

다음과 같은 경우 단어 분리 시간 초과 오류가 발생할 수 있습니다.

  • 쿼리 언어용 단어 분리기가 올바르지 않게 구성된 경우. 해당 레지스트리 설정이 올바르지 않은 경우가 이에 해당합니다.

  • 특정 쿼리 문자열에 대해 단어 분리기가 제대로 작동하지 않는 경우

  • 특정 쿼리 문자열에 대해 단어 분리기가 너무 많은 데이터를 반환하는 경우 데이터가 지나치게 많으면 버퍼 오버런 공격으로 간주되어 단어 분리 서비스를 호스팅하는 필터 데몬 프로세스(fdhost.exe)가 종료될 수 있습니다.

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

    가장 일반적인 구성 문제는 암호 만료나 필터 데몬 계정이 로그온하지 못하도록 하는 도메인 정책입니다.

  • 서버 인스턴스에서 실행되는 쿼리 작업의 양이 너무 많은 경우. 단어 분리기에서 전체 텍스트 쿼리 문자열을 처리하는 데 오랜 시간이 걸리거나 서버에서 많은 쿼리가 실행되는 경우가 이에 해당됩니다. 이는 가능성이 가장 낮은 원인입니다.

사용자 동작

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

가능한 원인: 사용자 조치
쿼리 언어용 단어 분리기가 올바르지 않게 구성된 경우 타사 단어 분리기를 사용할 경우 운영 체제에 올바르지 않게 등록되어 있을 수 있습니다. 이 경우 단어 분리기를 다시 등록하십시오. 자세한 내용은 검색에 사용된 단어 분리기를 이전 버전으로 되돌리기를 참조하세요.
특정 쿼리 문자열에 대해 단어 분리기가 제대로 작동하지 않는 경우 단어 분리기가 SQL Server 지원되는 경우 Microsoft 고객 서비스 및 지원에 문의하세요.
특정 쿼리 문자열에 대해 단어 분리기가 너무 많은 데이터를 반환하는 경우 단어 분리기가 SQL Server 지원되는 경우 Microsoft 고객 서비스 및 지원에 문의하세요.
필터 데몬 프로세스 구성이 올바르지 않은 경우 현재 암호를 사용 중이고 도메인 정책에서 필터 데몬 계정 로그온을 차단하고 있는지 확인하십시오.
서버에서 실행되는 쿼리 작업의 양이 너무 많은 경우 부하를 줄여 쿼리를 다시 실행하십시오.

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

SQL Server 각 버전에는 일반적으로 언어 규칙이 더 뛰어나고 이전 단어 분리기보다 더 정확한 새 단어 분리기가 포함되어 있습니다. 잠재적으로 새 단어 분리기는 이전 버전의 SQL Server 가져온 전체 텍스트 인덱스의 단어 분리기와 약간 다르게 동작할 수 있습니다.

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

참고 항목

CREATE FULLTEXT INDEX(Transact-SQL)
ALTER FULLTEXT INDEX(Transact-SQL)
전체 텍스트 검색에 사용할 중지 단어와 중지 목록 구성 및 관리