전체 텍스트 검색 아키텍처

전체 텍스트 검색은 전체 텍스트 엔진을 통해 수행됩니다. 전체 텍스트 엔진은 인덱싱 지원과 쿼리 지원의 두 가지 역할을 수행합니다.

SQL Server 2008부터 전체 텍스트 검색 아키텍처는 다음과 같은 프로세스로 구성됩니다.

  • SQL Server 프로세스(sqlservr.exe)

    [!참고]

    MSFTESQL 서비스는 SQL Server 2008 이상 버전에는 없습니다. SQL Server 2005 이전 버전에서 MSFTESQL 서비스에 의해 수행되었던 전체 텍스트 태스크는 이제 SQL Server 프로세스에 의해 수행됩니다.

  • 필터 데몬 호스트 프로세스(fdhost.exe)

    SQL Server 2008부터는 보안을 위해 필터가 필터 데몬 호스트라는 개별 프로세스에 의해 로드됩니다. 서버 인스턴스는 모든 다중 스레드 필터에 대해 다중 스레드 프로세스를 사용하고 모든 단일 스레드 필터에 대해 단일 스레드 프로세스를 사용합니다.

    [!참고]

    fdhost.exe는 SQL Server 2005 및 이전 버전의 전체 텍스트 엔진 필터 데몬(msftefd.exe)을 대체합니다.

    fdhost.exe 프로세스는 FDHOST Launcher 서비스(MSSQLFDLauncher)에 의해 만들어지고 FDHOST Launcher 서버 계정의 보안 자격 증명을 사용하여 실행됩니다. 따라서 전체 텍스트 인덱싱과 전체 텍스트 쿼리를 수행하려면 이 서비스를 실행해야 합니다. 이 서비스에 대한 서비스 계정을 설정하는 방법은 방법: 전체 텍스트 검색용 FDHOST Launcher(MSSQLFDLauncher) 서비스 시작 계정 설정(SQL Server 구성 관리자)을 참조하십시오.

이러한 프로세스에는 전체 텍스트 검색 아키텍처의 구성 요소가 포함됩니다. 이러한 구성 요소 및 이들의 관계는 다음 그림에 요약되어 있습니다. 구성 요소는 이 그림 다음에 설명되어 있습니다.

전체 텍스트 검색 아키텍처

SQL Server 프로세스

전체 텍스트 검색은 SQL Server 프로세스의 다음 구성 요소를 사용합니다.

  • 사용자 테이블

    이 테이블은 전체 텍스트 인덱싱할 데이터를 포함합니다.

  • 전체 텍스트 Gatherer

    전체 텍스트 Gatherer는 전체 텍스트 탐색 스레드와 함께 작동합니다. 이 구성 요소는 전체 텍스트 카탈로그를 모니터링하고 전체 텍스트 인덱스 채우기를 예약 및 수행합니다.

    [!참고]

    SQL Server 2008부터는 전체 텍스트 카탈로그가 가상 개체이며 어떠한 파일 그룹에도 속하지 않습니다. 전체 텍스트 카탈로그는 전체 텍스트 인덱스 그룹을 나타내는 논리적 개념입니다.

  • 동의어 사전 파일

    이 파일은 검색어의 동의어를 포함합니다. 자세한 내용은 동의어 사전 구성을 참조하십시오.

  • Stoplist 개체

    Stoplist 개체는 검색에 유용하지 않은 일반적인 단어의 목록을 포함합니다. 자세한 내용은 중지 단어 및 중지 목록를 참조하십시오.

    [!참고]

    Stoplist 개체는 SQL Server 2005 이전 버전의 의미 없는 단어 파일을 대체합니다.

  • SQL Server 쿼리 프로세서

    쿼리 프로세서는 SQL 쿼리를 컴파일하고 실행합니다. SQL 쿼리에 전체 텍스트 검색 쿼리가 포함된 경우 해당 쿼리는 컴파일 및 실행 중에 전체 텍스트 엔진으로 전송됩니다. 쿼리 결과는 전체 텍스트 인덱스와 일치합니다. 자세한 내용은 전체 텍스트 엔진을 참조하십시오.

  • 전체 텍스트 엔진

    SQL Server의 전체 텍스트 엔진은 이제 쿼리 프로세서와 완전히 통합됩니다. 전체 텍스트 엔진은 전체 텍스트 쿼리를 컴파일하고 실행합니다. 쿼리 실행의 일부로 전체 텍스트 엔진은 동의어 사전 및 중지 목록에서 입력을 받을 수 있습니다. SQL Server 2008 이상 버전에서 SQL Server용 전체 텍스트 엔진은 SQL Server 쿼리 프로세서 내에서 실행됩니다.

  • 인덱스 기록기(인덱서)

    인덱스 기록기는 인덱싱된 토큰을 저장하는 데 사용되는 구조를 만듭니다.

  • 필터 데몬 관리자

    필터 데몬 관리자는 전체 텍스트 엔진 필터 데몬 호스트의 상태를 모니터링합니다.

필터 데몬 호스트

필터 데몬 호스트는 전체 텍스트 엔진에 의해 시작되는 프로세스로, 테이블 데이터의 액세스, 필터링 및 단어 분리, 그리고 쿼리 입력의 단어 분리 및 형태소 분석을 담당하는 다음과 같은 전체 텍스트 검색 구성 요소를 실행합니다.

필터 데몬 호스트의 구성 요소는 다음과 같습니다.

  • 프로토콜 처리기

    이 구성 요소는 부가적인 처리를 위해 메모리에서 데이터를 가져오며 지정된 데이터베이스의 사용자 테이블에 있는 데이터에 액세스합니다. 프로토콜 처리기가 수행해야 하는 기능 중 하나는 전체 텍스트 인덱싱되는 열에서 데이터를 수집하고 필요에 따라 필터링과 단어 분리기를 적용하는 필터 데몬 호스트에 이 데이터를 전달하는 것입니다.

  • 필터

    일부 데이터 형식은 필터링을 적용해야 varbinary, varbinary(max), image 또는 xml 열의 데이터를 포함하여 문서의 데이터를 전체 텍스트 인덱싱할 수 있습니다. 지정된 문서에 사용되는 필터는 해당 문서 유형에 따라 다릅니다. 예를 들어 Microsoft Word(.doc) 문서, Microsoft Excel(.xls) 문서 및 XML(.xml) 문서에는 서로 다른 필터가 사용됩니다. 그러면 필터는 포함된 서식을 제거하고 텍스트와 텍스트 위치에 대한 정보를 유지하여 문서에서 텍스트 청크를 추출합니다. 결과는 텍스트 정보의 스트림입니다. 자세한 내용은 전체 텍스트 검색 필터를 참조하십시오.

  • 단어 분리기 및 형태소 분석기

    단어 분리기는 지정된 언어의 어휘 규칙을 기준으로 단어 경계(단어 분리)를 찾는 언어별 구성 요소입니다. 각 단어 분리기는 동사를 변화시키고 활용 형태상의 확장을 수행하는 언어별 형태소 분석기 구성 요소와 연결됩니다. 인덱싱할 때 필터 데몬 호스트는 단어 분리기와 형태소 분석기를 사용하여 지정된 테이블 열의 텍스트 데이터에 대해 언어 분석을 수행합니다. 전체 텍스트 인덱스의 테이블 열과 연결된 언어에 따라 열을 인덱싱하는 데 사용되는 단어 분리기와 형태소 분석기가 결정됩니다. 자세한 내용은 단어 분리기 및 형태소 분석기를 참조하십시오.

    [!참고]

    전체 텍스트 언어 구성 요소에 대한 자세한 내용은 전체 텍스트 언어 구성 요소 구성를 참조하십시오.