검색을 위해 단어 분리기와 형태소 분석기 구성 및 관리Configure and Manage Word Breakers and Stemmers for Search

단어 분리기와 형태소 분석기는 모든 전체 텍스트 인덱싱된 데이터에 대해 언어 분석을 수행합니다.Word breakers and stemmers perform linguistic analysis on all full-text indexed data. 언어 분석에서는 다음 두 작업을 수행합니다.Linguistic analysis does the following two things:

  • 단어 경계 찾기(단어 분리).Find word boundaries (word-breaking). 단어 분리기는 해당 언어의 어휘 규칙을 기준으로 단어의 경계를 결정하는 개별 단어를 식별합니다.The word breaker identifies individual words by determining where word boundaries exist based on the lexical rules of the language. 각 단어( 토큰이라고도 함)는 압축된 표현으로 크기를 줄여 전체 텍스트 인덱스에 삽입됩니다.Each word (also known as a token) is inserted into the full-text index using a compressed representation to reduce its size.

  • 켤레 동사(형태소 분석).Conjugate verbs (stemming). 형태소 분석기 는 해당 언어의 규칙에 따라 특정 단어의 굴절형을 생성합니다. 예를 들어 "running", "ran" 및 "runner"는 "run"이라는 단어의 여러 가지 형태입니다.The stemmer generates inflectional forms of a particular word based on the rules of that language (for example, "running", "ran", and "runner" are various forms of the word "run").

단어 분리기 및 형태소 분석기는 언어별로 제공됩니다.Word breakers and stemmers are language specific

단어 분리기와 형태소 분석기는 언어별로 제공되며 언어 분석 규칙은 언어마다 다릅니다.Word breakers and stemmers are language specific, and the rules for linguistic analysis differ for different languages. 언어별 단어 분리기는 해당 언어에 맞는 보다 정확한 결과를 반환할 수 있습니다.Language-specific word breakers make the resulting terms more accurate for that language.

SQL Server에서 지원하는 모든 언어에 대해 제공되는 단어 분리기 및 형태소 분석기를 사용하기 위해 일반적으로 다른 작업을 수행할 필요가 없습니다.To use the word breakers and stemmers provided for all the languages supported by SQL Server, you typically don't have to take any action.

  • 해당 언어군의 단어 분리기만 있고 특정 하위 언어의 단어 분리기가 없으면 주 언어가 사용됩니다.Where there is a word breaker for the language family, but not for the specific sub-language, the major language is used. 예를 들어 프랑스어 단어 분리기를 사용하여 프랑스어(캐나다) 텍스트를 처리합니다.For example, the French word breaker is used to handle text that is French Canadian.
  • 특정 언어의 단어 분리기를 사용할 수 없으면 중립 단어 분리기가 사용됩니다.If no word breaker is available for a particular language, the neutral word breaker is used. 중립 단어 분리기를 사용하면 공백 및 문장 부호 표시와 같은 중립 문자에서 단어가 분리됩니다.With the neutral word breaker, words are broken at neutral characters such as spaces and punctuation marks.

지원되는 언어 목록 가져오기Get the list of supported languages

SQL ServerSQL Server 전체 텍스트 검색에서 지원하는 언어 목록을 보려면 다음 Transact-SQLTransact-SQL 문을 사용합니다.To see the list of languages supported by SQL ServerSQL Server Full-Text Search, use the following Transact-SQLTransact-SQL statement. 이 목록에 언어가 있으면 단어 분리기가 해당 언어에 대해 등록되어 있음을 나타냅니다.The presence of a language in this list indicates that word breakers are registered for the language.

SELECT * FROM sys.fulltext_languages

등록된 단어 분리기 목록 가져오기 Get the list of registered word breakers

전체 텍스트 검색에서 언어에 대한 단어 분리기를 사용하려면 단어 분리기가 등록되어 있어야 합니다.For Full-Text Search to use the word breakers for a language, they must be registered. 단어 분리기가 등록되면 형태소 분석기, 의미 없는 단어(중지 단어) 및 동의어 사전 파일과 같은 관련 언어의 리소스도 전체 텍스트 인덱싱 및 쿼리 작업에 사용할 수 있습니다.For registered word breakers, associated linguistic resources - stemmers, noise words (stopwords), and thesaurus files - also become available to full-text indexing and querying operations.

등록된 단어 분리기 구성 요소 목록을 보려면 다음 문을 사용합니다.To see the list of registered word breaker components, use the following statement.

EXEC sp_help_fulltext_system_components 'wordbreaker';  
GO  

추가 옵션 및 추가 정보는 sp_help_fulltext_system_components(Transact-SQL)를 참조하세요.For additional options and more info, see sp_help_fulltext_system_components (Transact-SQL).

단어 분리기를 추가 또는 제거하는 경우If you add or remove a word breaker

단어 분리기를 추가, 제거 또는 변경한 경우에는 전체 텍스트 인덱싱 및 쿼리에서 지원되는 Microsoft Windows LCID(로캘 ID) 목록을 새로 고쳐야 합니다.If you add, remove, or alter a word breaker, you need to refresh the list of Microsoft Windows locale identifiers (LCIDs) that are supported for full-text indexing and querying. 자세한 내용은 View or Change Registered Filters and Word Breakers을 참조하세요.For more information, see View or Change Registered Filters and Word Breakers.

기본 전체 텍스트 언어 옵션 설정 Set the default full-text language option

지역화된 SQL ServerSQL Server버전의 경우 일치하는 언어가 있으면 SQL ServerSQL Server 설치 프로그램에서 default full-text language 옵션을 서버 언어로 설정합니다.For a localized version of SQL ServerSQL Server, SQL ServerSQL Server Setup sets the default full-text language option to the language of the server if an appropriate match exists. 지역화되지 않은 SQL ServerSQL Server버전의 경우 default full-text language 옵션이 영어입니다.For a non-localized version of SQL ServerSQL Server, the default full-text language option is English.

전체 텍스트 인덱스를 만들거나 변경할 때는 각 전체 텍스트 인덱싱된 열마다 다른 언어를 지정할 수 있습니다.When you create or alter a full-text index, you can specify a different language for each full-text indexed column. 열에 언어를 지정하지 않으면 기본적으로 구성 옵션 default full-text language의 값이 사용됩니다.If no language is specified for a column, the default is the value of the configuration option default full-text language.

참고

쿼리에 LANGUAGE 옵션을 지정하지 않은 경우 하나의 전체 텍스트 쿼리 함수 절에 있는 모든 열은 동일한 언어를 사용해야 합니다.All columns listed in a single full-text query function clause must use the same language, unless the LANGUAGE option is specified in the query. 쿼리 중인 전체 텍스트 인덱싱된 열의 언어에 따라 전체 텍스트 쿼리 조건자(CONTAINSFREETEXT) 및 함수(CONTAINSTABLEFREETEXTTABLE)의 인수에 대해 수행되는 언어 분석이 결정됩니다.The language used for the full-text indexed column being queried determines the linguistic analysis performed on arguments of the full-text query predicates (CONTAINS and FREETEXT) and functions (CONTAINSTABLE and FREETEXTTABLE).

인덱싱된 열에 대한 언어 선택 Choose the language for an indexed column

전체 텍스트 인덱스를 만들 때는 각 인덱싱된 열에 대해 언어를 지정하는 것이 좋습니다.When creating a full-text index, we recommend that you specify a language for each indexed column. 열에 언어를 지정하지 않으면 시스템 기본 언어가 사용됩니다.If a language is not specified for a column, the system default language is used. 열의 언어에 따라 해당 열을 인덱싱하는 데 사용되는 단어 분리기와 형태소 분석기가 결정됩니다.The language of a column determines which word breaker and stemmer are used for indexing that column. 또한 지정된 언어의 동의어 사전 파일이 해당 열에 대한 전체 텍스트 쿼리에 사용됩니다.Also, the thesaurus file of that language will be used by full-text queries on the column.

전체 텍스트 인덱스를 만들기 위해 열 언어를 선택할 때 고려할 몇 가지 사항이 있습니다.There are a couple of things to consider when choosing the column language for creating a full-text index. 이러한 고려 사항은 전체 텍스트 엔진으로 텍스트를 토큰화한 다음 인덱싱하는 방법과 관련이 있습니다.These considerations relate to how your text is tokenized and then indexed by Full-Text Engine. 자세한 내용은 전체 텍스트 인덱스 생성 시 언어 선택을 참조하세요.For more information, see Choose a Language When Creating a Full-Text Index.

특정 열의 단어 분리기 언어를 보려면 다음 문을 실행합니다.To view the word breaker language of specific columns, run the following statement.

SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;

추가 옵션 및 추가 정보는 sys.fulltext_index_columns(Transact-SQL)를 참조하세요.For additional options and more info, see sys.fulltext_index_columns (Transact-SQL).

단어 분리 시간 초과 오류 해결 Troubleshoot word-breaking time-out errors

단어 분리 시간 초과 오류는 다양한 상황에서 발생할 수 있습니다.A word-breaking time-out error may occur in a variety of situations. 이러한 상황과 각 상황에서의 대처 방법에 대한 자세한 내용은 MSSQLSERVER_30053을 참조하세요.or information about these situations and how to respond in each situation, see MSSQLSERVER_30053.

MSSQLSERVER_30053 오류에 대한 정보Info about the MSSQLSERVER_30053 error

속성Property ValueValue
제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 3005330053
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name FTXT_QUERY_E_WORDBREAKINGTIMEOUTFTXT_QUERY_E_WORDBREAKINGTIMEOUT
메시지 텍스트Message Text 전체 텍스트 쿼리 문자열의 단어 분리 작업이 시간을 초과했습니다.Word breaking timed out for the full-text query string. 단어 분리기에서 전체 텍스트 쿼리 문자열을 처리하는 데 오랜 시간이 걸리거나 서버에서 많은 쿼리가 실행되는 경우 이 오류가 발생할 수 있습니다.This can happen if the wordbreaker took a long time to process the full-text query string, or if a large number of queries are running on the server. 부하를 줄여 쿼리를 다시 실행하십시오.Try running the query again under a lighter load.

설명Explanation

다음과 같은 경우 단어 분리 시간 초과 오류가 발생할 수 있습니다.A word-breaking timeout error can occur in the following situations:

  • 쿼리 언어용 단어 분리기가 올바르지 않게 구성된 경우. 해당 레지스트리 설정이 올바르지 않은 경우가 이에 해당합니다.The word breaker for the query language is configured incorrectly; for example, its registry settings are incorrect.

  • 특정 쿼리 문자열에 대해 단어 분리기가 제대로 작동하지 않는 경우The word breaker malfunctions for a specific query string.

  • 특정 쿼리 문자열에 대해 단어 분리기가 너무 많은 데이터를 반환하는 경우The word breaker returns too much data for a specific query string. 데이터가 지나치게 많으면 버퍼 오버런 공격으로 간주되어 단어 분리 서비스를 호스팅하는 필터 데몬 프로세스(fdhost.exe)가 종료될 수 있습니다.Excess data is treated as a potential buffer overrun attack, and shuts down the filter daemon process (fdhost.exe), which hosts the word-breaking services.

  • 필터 데몬 프로세스 구성이 올바르지 않은 경우The filter daemon process configuration is incorrect.

    가장 일반적인 구성 문제는 암호 만료나 필터 데몬 계정이 로그온하지 못하도록 하는 도메인 정책입니다.The most common configuration problems are password expiration or a domain policy that prevents the filter daemon account from logging on.

  • 서버 인스턴스에서 실행되는 쿼리 작업의 양이 너무 많은 경우. 단어 분리기에서 전체 텍스트 쿼리 문자열을 처리하는 데 오랜 시간이 걸리거나 서버에서 많은 쿼리가 실행되는 경우가 이에 해당됩니다.A very heavy query workload is running on the server instance; for example, the word-breaker took a long time to process the full-text query string, or a large number of queries are running on the server. 이는 가능성이 가장 낮은 원인입니다.Note that this is the least likely cause.

사용자 동작User Action

다음과 같이 시간 초과 문제의 가능한 원인에 적합한 사용자 동작을 선택합니다.Select the user action that is appropriate to the probable cause of the timeout, as follows:

예상 원인Probable cause 사용자 동작User action
쿼리 언어용 단어 분리기가 올바르지 않게 구성된 경우The word breaker for the query language is configured incorrectly. 타사 단어 분리기를 사용할 경우 운영 체제에 올바르지 않게 등록되어 있을 수 있습니다.If you are using a third-party word breaker it might be incorrectly registered with the operating system. 이 경우 단어 분리기를 다시 등록하십시오.In this case, re-register the word breaker. 자세한 내용은 검색에 사용된 단어 분리기를 이전 버전으로 되돌리기를 참조하세요.For more information, see Revert the Word Breakers Used by Search to the Previous Version.
특정 쿼리 문자열에 대해 단어 분리기가 제대로 작동하지 않는 경우The word breaker malfunctions for a specific query string. SQL ServerSQL Server에서 지원되는 단어 분리기의 경우 Microsoft 고객 서비스 지원 센터에 문의하십시오.If the word breaker is supported by SQL ServerSQL Server, contact Microsoft Customer Service and Support.
특정 쿼리 문자열에 대해 단어 분리기가 너무 많은 데이터를 반환하는 경우The word breaker returns too much data for a specific query string. SQL ServerSQL Server에서 지원되는 단어 분리기의 경우 Microsoft 고객 서비스 지원 센터에 문의하십시오.If the word breaker is supported by SQL ServerSQL Server, contact Microsoft Customer Service and Support.
필터 데몬 프로세스 구성이 올바르지 않은 경우The filter daemon process configuration is incorrect. 현재 암호를 사용 중이고 도메인 정책에서 필터 데몬 계정 로그온을 차단하고 있는지 확인하십시오.Ensure that you are using the current password and that a domain policy is not preventing the filter daemon account from logging on.
서버에서 실행되는 쿼리 작업의 양이 너무 많은 경우A very heavy query workload is running on the server instance. 부하를 줄여 쿼리를 다시 실행하십시오.Try running the query again under a lighter load.

업데이트된 단어 분리기의 영향 이해 Understand the impact of updated word breakers

각 버전의 SQL ServerSQL Server 에는 일반적으로 더욱 효과적인 언어 규칙이 있고 이전 단어 분리기보다 정확한 차세대 단어 분리기가 포함되어 있습니다.Each version of SQL ServerSQL Server typically includes new word breakers that have better linguistic rules and are more accurate than earlier word breakers. 경우에 따라 새로운 단어 분리기가 이전 버전의 SQL ServerSQL Server에서 가져온 전체 텍스트 인덱스의 단어 분리기와 약간 다르게 동작할 수도 있습니다.Potentially, the new word breakers might behave slightly differently from the word breakers in full-text indexes that were imported from previous versions of SQL ServerSQL Server.

이는 데이터베이스를 현재 버전의 SQL ServerSQL Server로 업그레이드한 상태에서 전체 텍스트 카탈로그를 가져온 경우에 중요합니다.This is significant if a full-text catalog was imported when a database was upgraded to the current version of SQL ServerSQL Server. 이제 전체 텍스트 카탈로그의 전체 텍스트 인덱스에서 사용되는 하나 이상의 언어를 새로운 단어 분리기와 연결할 수 있습니다.One or more languages used by the full-text indexes in the full-text catalog might now be associated with new word breakers. 자세한 내용은 전체 텍스트 검색 업그레이드를 참조하세요.For more information, see Upgrade Full-Text Search.

참고 항목See Also

CREATE FULLTEXT INDEX(Transact-SQL) CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX(Transact-SQL) ALTER FULLTEXT INDEX (Transact-SQL)
전체 텍스트 검색에 사용할 중지 단어와 중지 목록 구성 및 관리 Configure and Manage Stopwords and Stoplists for Full-Text Search