다음을 통해 공유


Windows 검색 개요

Windows Search는 가장 일반적인 파일 형식 및 데이터 형식에 대한 즉각적인 검색 기능을 갖춘 데스크톱 검색 플랫폼이며, 타사 개발자는 이러한 기능을 새 파일 형식 및 데이터 형식으로 확장할 수 있습니다.

이 항목은 다음과 같이 구성됩니다.

소개

Windows Search는 Windows 7 및 Windows Vista의 표준 구성 요소이며 기본적으로 사용하도록 설정됩니다. Windows Search는 Windows XP 및 Windows Server 2003용 추가 기능으로 사용되었던 WDS(Windows 데스크톱 검색)를 대체합니다.

Windows Search는 다음 세 가지 구성 요소로 구성됩니다.

Windows Search 서비스

WSS는 문서 컬렉션의 추출된 기능을 구성합니다. Windows Search 프로토콜을 사용하면 클라이언트가 WSS를 호스팅하는 서버와 통신하여 쿼리를 실행하고 관리자가 인덱싱 서버를 관리할 수 있습니다. 파일을 처리할 때 WSS는 문서 집합을 분석하고 유용한 정보를 추출한 다음 추출된 정보를 구성하여 쿼리에 대한 응답으로 해당 문서의 속성을 효율적으로 반환할 수 있도록 합니다.

쿼리할 수 있는 문서 컬렉션은 Windows Search에서 가장 높은 수준의 조직 단위인 카탈로그로 구성됩니다. 카탈로그는 쿼리할 수 있는 인덱싱된 문서 집합을 나타냅니다. 카탈로그는 텍스트 또는 값과 테이블 열에 저장된 해당 위치(로캘)가 있는 속성 테이블로 구성됩니다. 테이블의 각 행은 카탈로그 범위의 별도 문서에 해당하며 테이블의 각 열은 속성에 해당합니다. 카탈로그에는 반전된 인덱스(빠른 단어 일치용) 및 속성 캐시(속성 값의 빠른 검색용)가 포함될 수 있습니다.

인덱서 프로세스는 LocalSystem 계정에서 실행되는 Windows 서비스로 구현되며 모든 사용자(로그인한 사용자가 없는 경우에도)에 대해 항상 실행되므로 Windows Search에서 다음을 수행할 수 있습니다.

  • 모든 사용자 간에 공유되는 인덱스 하나를 유지 관리합니다.
  • 콘텐츠 액세스에 대한 보안 제한을 유지합니다.
  • 네트워크의 클라이언트 컴퓨터에서 원격 쿼리를 처리합니다.

Search 서비스는 인덱싱할 때 사용자 환경 및 시스템 성능을 보호하도록 설계되었습니다. 다음 조건으로 인해 서비스가 인덱싱을 다시 제한하거나 일시 중지합니다.

  • 비 검색 관련 프로세스에 의한 높은 CPU 사용량
  • 파일 읽기 및 쓰기, 페이지 파일 및 파일 캐시 I/O, 매핑된 파일 I/O를 포함한 높은 시스템 I/O 속도입니다.
  • 메모리 가용성이 낮습니다.
  • 배터리 사용 시간이 짧습니다.
  • 인덱스가 저장되는 드라이브의 디스크 공간이 부족합니다.

개발 플랫폼

Search API에 액세스하고 Windows Search 애플리케이션을 만드는 기본 방법은 셸 데이터 원본을 사용하는 것입니다. 셸 데이터 원본은 셸 네임스페이스를 확장하고 데이터 저장소의 항목을 노출하는 데 사용되는 구성 요소입니다. 데이터 저장소는 데이터의 리포지토리입니다. 셸 프로그래밍 모델에 셸 데이터 원본을 사용하는 컨테이너로 데이터 저장소를 노출할 수 있습니다. 데이터 저장소의 항목은 프로토콜 처리기를 사용하여 Windows Search 시스템에서 인덱싱할 수 있습니다.

예를 들어 ISearchFolderItemFactory 는 검색 폴더 데이터 원본의 인스턴스를 만들 수 있는 구성 요소로, Shell에서 제공하는 일종의 "가상" 데이터 원본으로, 셸 네임스페이스의 다른 데이터 원본에 대해 쿼리를 실행하고 결과를 열거할 수 있습니다. 인덱서를 사용하거나 지정된 범위의 항목을 수동으로 열거하고 검사하여 수행할 수 있습니다. 이 인터페이스를 사용하면 검색 폴더를 만들고 수정하는 메서드를 사용하여 검색 매개 변수를 설정할 수 있습니다. 이 인터페이스의 메서드가 호출되지 않으면 기본값이 대신 사용됩니다.

셸 데이터 모델을 통해 간접적으로 Windows Search 기능에 액세스하는 것이 좋습니다. 셸 데이터 모델 수준에서 전체 셸 기능에 대한 액세스를 제공하기 때문입니다. 예를 들어 검색 범위를 라이브러리(Windows 7 이상에서 사용할 수 있는 기능)로 설정하여 라이브러리 폴더를 쿼리 범위로 사용할 수 있습니다. Windows Search는 다른 인덱스에 있는 경우(폴더가 다른 컴퓨터에 있는 경우) 해당 위치의 검색 결과를 집계합니다. 또한 Shell 데이터 계층은 항목의 속성을 보다 완벽하게 보고 일부 속성 값을 합성합니다. 또한 Windows Search에서 인덱싱되지 않은 데이터 저장소에 대한 검색 기능에 액세스할 수 있습니다. 예를 들어 USB(유니버설 직렬 버스) 스토리지 디바이스, MTP 프로토콜을 사용하는 휴대용 디바이스 또는 해당 스토리지 시스템에 대한 액세스를 제공하는 셸 데이터 원본을 통해 FTP(파일 전송 프로토콜) 서버를 검색할 수 있습니다. 이렇게 하면 사용자 환경이 향상됩니다.

Windows Search에는 WSS(Windows Search Service) 구현에 사용되는 속성 값의 캐시가 있습니다. 이러한 속성 값은 Windows Search OLE DB 공급자를 사용하거나 검색 결과 및 쿼리 기반 뷰의 항목을 나타내는 ISearchFolderItemFactory를 통해 프로그래밍 방식으로 쿼리할 수 있습니다. 그런 다음, Windows Search는 Word 문서와 같은 항목이 인덱싱될 때 필터 처리기 또는 속성 처리기에서 내보낸 속성을 수집하고 저장합니다. 이 저장소는 인덱스를 다시 작성할 때 삭제되고 다시 작성됩니다.

타사 개발자는 프로그래밍 방식 쿼리를 통해 인덱스의 데이터를 사용하는 애플리케이션을 만들 수 있으며, Windows Search에서 인덱싱할 사용자 지정 파일 및 항목 유형에 대한 인덱스의 데이터를 확장할 수 있습니다. Windows 탐색기에서 쿼리 결과를 표시하려면 인덱스 확장을 위한 프로토콜 처리기를 만들려면 먼저 셸 데이터 원본을 구현해야 합니다. 그러나 모든 쿼리가 프로그래밍 방식(예: OLE DB를 통해)이고 셸이 아닌 애플리케이션의 코드로 해석되는 경우 셸 네임스페이스는 여전히 선호되지만 필수는 아닙니다.

Windows에서 데이터베이스의 항목 또는 사용자 지정 파일 형식과 같은 파일 콘텐츠에 대한 정보를 가져오려면 프로토콜 처리기가 필요합니다. Windows Search는 파일의 이름과 속성을 인덱싱할 수 있지만 Windows에는 파일 내용에 대한 정보가 없습니다. 따라서 이러한 항목은 Windows 셸에서 인덱싱하거나 노출할 수 없습니다. 사용자 지정 프로토콜 처리기를 구현하여 이러한 항목을 노출할 수 있습니다. 달성하려는 개발자 시나리오로 식별되는 처리기 목록은 Windows Search에서 개발 플랫폼으로 "처리기 개요"를 참조하세요.

참고 항목

셸 데이터 원본을 셸 네임스페이스 확장이라고도 합니다. 처리기를 셸 확장 또는 셸 확장 처리기라고도 합니다.

 

사용자 인터페이스

Windows Vista 이상에서는 검색에 즉시 액세스할 수 있도록 Windows Search가 모든 Windows 탐색기 창에 통합됩니다. 이를 통해 사용자는 파일 이름, 속성 및 전체 텍스트 콘텐츠별로 파일 및 항목을 빠르게 검색할 수 있습니다. 검색을 구체화하기 위해 결과를 추가로 필터링할 수도 있습니다. Windows Search의 몇 가지 추가 기능은 다음과 같습니다.

  • 모든 창의 인스턴트 검색 상자를 사용하면 현재 보기에 있는 모든 항목을 즉시 필터링할 수 있습니다. 즉시 검색 상자는 시작 메뉴 표시되어 프로그램 또는 파일을 검색하고 모든 Windows 탐색기 창의 오른쪽 위 모서리에 표시되어 표시된 결과를 필터링합니다. 즉시 검색은 관련 파일을 찾기 위해 Windows 미디어 플레이어 같은 다른 Windows 기능에도 통합됩니다.
  • 문서에 키워드로 태그를 지정하여 사용자가 정의한 사용자 지정 기준에 따라 그룹화할 수 있습니다. 태그는 항목 이름 또는 콘텐츠에 없을 수 있는 키워드를 기반으로 파일을 쉽게 찾을 수 있도록 사용자 또는 애플리케이션에서 할당한 메타데이터 항목입니다. 예를 들어 그림 집합은 "Arizona Vacation 2009"로 태그를 지정하여 포함된 단어를 검색하여 나중에 빠르게 검색할 수 있습니다.
  • Windows 탐색기 보기의 향상된 열 머리글을 사용하면 다양한 방식으로 문서를 정렬하고 그룹화할 수 있습니다. 예를 들어 파일은 이름, 수정 날짜, 형식, 크기 및 태그에 따라 정렬할 수 있습니다. 이러한 속성에 따라 문서를 그룹화할 수도 있으며 각 그룹을 원하는 대로 필터링(숨기거나 표시)할 수 있습니다.
  • 문서는 이름, 수정 날짜, 형식, 크기 및 태그에 따라 누적될 수 있습니다. 스택에는 지정된 속성이 있고 선택한 폴더의 하위 폴더 내에 있는 모든 문서가 포함됩니다.
  • Windows 탐색기의 검색 창에서 검색 저장 단추를 클릭하여 나중에 검색할 수 있도록 검색을 저장할 수 있습니다. 저장된 검색이 열릴 때 원래 조건에 따라 결과가 동적으로 다시 채워집니다. 자세한 내용은 검색 결과 저장을 참조하세요.
  • 미리 보기 처리기 및 미리 보기 처리기를 사용하면 사용자가 문서를 만든 애플리케이션을 열지 않고도 Windows 탐색기에서 문서를 미리 볼 수 있습니다.

기술 필수 구성 요소

Windows Search SDK 설명서를 읽기 전에 다음 개념을 기본적으로 이해해야 합니다.

  • 셸 데이터 원본을 구현하는 방법입니다.
  • 처리기를 구현하는 방법입니다.
  • 네이티브 코드에서 작업하는 방법.

셸 데이터 원본은 셸 네임스페이스를 확장하고 데이터 저장소의 항목을 노출하는 데 사용되는 구성 요소입니다. 과거에는 Shell 데이터 원본을 셸 네임스페이스 확장이라고 했습니다. 처리기는 셸 항목에 대한 기능을 제공하는 COM(Component Object Model) 개체입니다. 달성하려는 개발자 시나리오로 식별되는 처리기 목록은 Windows Search에서 개발 플랫폼으로 "처리기 개요"를 참조하세요.

Windows Search 및 관리 코드를 사용하는 다른 프로그램에서 노출되는 COM 개체를 사용하기 위한 Windows Search SDK 상호 운용성 어셈블리에 대한 자세한 내용은 셸 데이터 및 Windows Search에서 관리 코드 사용을 참조하세요. 그러나 필터, 속성 처리기 및 프로토콜 처리기는 네이티브 코드로 작성해야 합니다. 이는 여러 추가 기능이 실행되는 프로세스와 관련된 잠재적 CLR(공용 언어 런타임) 버전 관리 문제로 인해 발생합니다. C++를 접하는 개발자는 Visual C++ 개발자 센터Windows 개발 시작을 시작할 수 있습니다.

SDK 다운로드 및 콘텐츠

나열된 기술 필수 구성 요소를 충족하는 것 외에도 Windows SDK다운로드하여 Windows Search 라이브러리를 가져와야 합니다. Windows 검색 코드 샘플에는 관리 코드로 개발하기 위한 유용한 코드 샘플 및 상호 운용성 어셈블리가 포함되어 있습니다.

Windows Search SDK 설명서

Windows Search SDK 설명서의 내용은 다음과 같습니다.

Windows Search는 Windows XP 및 Windows Server 2003용 추가 기능으로 사용되었던 WDS(Windows 데스크톱 검색)를 대체합니다. WDS는 이전 버전의 Windows에서 레거시 인덱싱 서비스를 성능, 유용성 및 확장성에 대한 향상된 기능으로 대체했습니다. 새 개발 플랫폼은 보다 안전하고 안정적인 시스템을 생성하는 요구 사항을 지원합니다. 새 쿼리 플랫폼은 Microsoft WDS(Windows Desktop Search) 2.x와 호환되지 않지만 이전 버전의 WDS용으로 작성된 필터 및 프로토콜 처리기는 Windows Search에서 작동하도록 업데이트할 수 있습니다. Windows Search는 새 속성 시스템도 지원합니다. 필터, 속성 처리기 및 프로토콜 처리기에 대한 자세한 내용은 인덱스 확장을 참조하세요.

Windows Search는 Windows Vista 이상 버전에 기본 제공되며 다음 운영 체제를 지원하기 위해 WDS 2.x에 대한 재배포 가능 업데이트로 사용할 수 있습니다.

  • 32비트 버전의 Windows XP SP2(서비스 팩 2).
  • 모든 x64 기반 버전의 Windows XP.
  • Windows Server 2003 SP1(서비스 팩 1) 이상
  • 모든 x64 기반 버전의 Windows Server 2003.

Windows Search용으로 작성된 애플리케이션을 실행하려면 이러한 운영 체제를 실행하는 시스템에 Windows Search가 설치되어 있어야 합니다.

추가 리소스

개발 플랫폼으로서의 Windows 검색

Windows Search에서 지원되는 언어

셸 데이터 및 Windows 검색에서 관리 코드 사용