다음을 통해 공유


범위 규칙 관리

CSM(크롤링 범위 관리자)을 사용하면 Windows Search 크롤링 scope URL을 포함하거나 제외하는 scope 규칙을 정의할 수 있습니다.

CSM을 사용하면 다음을 수행할 수 있습니다.

  • 작업 규칙 집합에 새 scope 규칙 추가
  • 기존 scope 규칙 제거
  • 기본 scope 규칙 열거
  • 특정 URL이 크롤링 scope 포함되거나 제외되는지 또는 부모 또는 자식 scope 규칙이 있는지 검색

 

이 항목은 다음과 같은 주제로 이루어져 있습니다.

범위 규칙 정보

scope 규칙은 검색 루트 내의 URL이 크롤링 및 인덱싱되지 않도록 포함하거나 제외하는 규칙입니다. 포함 규칙은 인덱서가 해당 URL을 크롤링 scope 포함하게 하고 제외 규칙으로 인해 인덱서는 크롤링 scope 해당 URL(및 해당 자식)을 제외합니다.

예를 들어 데이터 파일이 로컬 컴퓨터의 WorkteamA\ProjectFiles 폴더에 있는 새 애플리케이션을 설치했다고 가정해 보겠습니다. 하위 폴더 프로토타입의 항목을 제외하고 ProjectFiles 폴더 내의 모든 항목을 인덱싱한다고 가정합니다. 이 경우 myPH:///C:\WorkteamA\ProjectFiles\에 대한 포함 규칙과 myPH:///C:\WorkteamA\ProjectFiles\Prototypes\에 대한 제외 규칙이 필요합니다.

다음과 같은 우선 순위가 있는 세 가지 유형의 규칙이 있습니다.

  1. 그룹 정책 규칙은 관리자에 의해 설정되며 다른 모든 규칙을 재정의할 수 있습니다.
  2. 사용자 규칙은 Windows Search 옵션 사용자 인터페이스에서 scope 수정하는 사용자가 설정합니다. 사용자 또는 다른 애플리케이션은 모든 사용자 규칙을 제거하고 기본 규칙으로 되돌리기 수 있습니다.
  3. 기본 규칙은 일반적으로 애플리케이션에서 기본 scope 정의하도록 설정됩니다. 예를 들어 새 프로토콜 처리기 또는 컨테이너가 시스템에 추가될 때 기본 규칙이 설정될 수 있습니다.

이러한 유형의 규칙은 CSM(크롤링 범위 관리자)이 크롤링할 전체 URL 목록을 생성하는 작업 규칙 집합 으로 구성됩니다. 기본 규칙은 그룹 정책 규칙 및 사용자 규칙에 의해 재정의될 수 있지만 언제든지 되돌리기 수 있는 자체 기본 규칙 집합에서 유지 관리됩니다. 인덱서는 작업 규칙 집합에서 URL을 크롤링하고 항목, 속성 및 콘텐츠를 카탈로그에 추가합니다.

참고

제어판 대한 액세스 권한이 있는 사용자는 해당 인터페이스를 통해 규칙을 수정할 수 있습니다. 따라서 scope 관리를 제공하는 애플리케이션은 저장된 사용자 규칙 복사본에 의존하는 대신 열거형 메서드를 사용하여 항상 CSM에서 직접 규칙을 가져와야 합니다.

 

제외 규칙은 와일드카드 문자 '*'를 사용하여 패턴 URL을 정의할 수 있습니다. 예: file:///C:\ProjectA\*\. 이 패턴을 사용하는 제외 규칙은 인덱서가 ProjectA 디렉터리 아래의 폴더를 크롤링하지 못하도록 합니다. 더 복잡한 예제의 경우 file:///C:\ProjectA\에 대한 포함 규칙과 file:///C:\ProjectA\*\data\*에 대한 제외 패턴 규칙이 있다고 가정합니다. 이 경우 인덱서는 다음에서 항목을 크롤링합니다.

  • C:\ProjectA\
  • C:\ProjectA\version1\testfiles\
  • C:\ProjectA\version1\temp\data\

그러나 인덱서는 다음에서 항목을 크롤링하지 않습니다.

  • C:\ProjectA\version1\data\

 

시작하기 전에

크롤링 범위 관리자 인터페이스를 사용하려면 먼저 다음 필수 구성 요소 단계를 수행해야 합니다.

  1. CSearchManager 개체를 만들고 해당 ISearchManager 인터페이스를 가져옵니다.
  2. "SystemIndex"에 대해 ISearchManager::GetCatalog를 호출하여 ISearchCatalogManager 인터페이스의 instance 가져옵니다.
  3. ISearchCatalogManager::GetCrawlScopeManager를 호출하여 ISearchCrawlScopeManager 인터페이스의 instance 가져옵니다.

크롤링 범위 관리자를 변경한 후 ISearchCrawlScopeManager::SaveAll 메서드를 호출해야 합니다. 이 메서드는 매개 변수를 사용하지 않고 성공에 대한 S_OK 반환합니다.

 

범위 규칙 추가

CSM에 대해 설정된 작업 규칙에는 사용자 및 기본 규칙뿐만 아니라 그룹 정책에 의해 강제되는 모든 규칙이 포함됩니다. 사용자 규칙은 사용자 인터페이스의 사용자에 의해 설정되며 기본 규칙은 다음 중 한 가지로 설정할 수 있습니다.

  • 시스템 관리자가 구현한 그룹 정책( ISearchCrawlScopeManager 인터페이스를 사용하지 않습니다.)
  • Windows Search 또는 프로토콜 처리기와 같은 애플리케이션의 설치 또는 업데이트
  • 새 데이터 저장소 또는 컨테이너를 추가하기 위한 설치 애플리케이션

ISearchCrawlScopeManager는 다음 표에 설명된 대로 새 scope 규칙을 추가하는 두 가지 메서드를 제공합니다. 파일 시스템의 포함 규칙 경로는 백슬래시 '\'(예: file:///C:\files\)로 끝나야 하며 제외 규칙의 경로는 별표(예: file:///c:\files\*)로 끝나야 합니다. 제외 규칙만 패턴 URL을 포함할 수 있습니다. 또한 보안을 강화하기 위해 경로에 사용자의 SID(보안 식별자)를 포함하는 것이 좋습니다. 사용자별 경로는 쿼리가 사용자별 프로세스에서 실행되어 한 사용자가 다른 사용자의 받은 편지함에서 인덱싱된 항목을 볼 수 없도록 하기 때문에 더 안전합니다.

다음 표에서는 새 scope 규칙을 추가하는 데 사용되는 ISearchCrawlScopeManager 인터페이스의 메서드에 대해 설명합니다.

메서드 설명
AddUserScopeRule 사용자가 지정한 URL에 대한 규칙을 추가합니다. 이러한 규칙은 기본 규칙을 재정의합니다. 사용자가 고유한 scope 규칙 및 URL을 관리할 수 있는 사용자 인터페이스를 구현한 경우 이 메서드를 사용합니다.
AddDefaultScopeRule 프로토콜 처리기와 같은 다른 애플리케이션에서 지정한 대로 URL에 대한 규칙을 추가합니다. 새 프로토콜 처리기를 구현하거나 새 데이터 저장소를 추가한 경우 이 메서드를 사용합니다. 이러한 규칙은 사용자 규칙에 의해 재정의될 수 있습니다.

 

각 메서드는 URL을 인덱싱 가능한 위치로 가져오고 URL을 포함할지 제외할지 여부를 결정하는 플래그를 사용합니다. fFollowFlags 매개 변수는 나중에 사용하도록 예약되어 있습니다. 새 scope 규칙을 추가하고 크롤링 범위 관리자가 규칙이 이미 있는지 확인하면(URL 또는 제공된 패턴에 따라) 작업 규칙 집합이 업데이트되어 (1) 이전 규칙이 새 규칙으로 대체되고 (2) 해당 규칙과 모순되는 모든 사용자 규칙이 제거됩니다.

팁: file:// 루트는 기본적으로 크롤링 scope 포함되지만 프로그램 파일은 기본적으로 인덱싱되지 않습니다. 따라서 해당 Program Files 디렉터리에 저장된 데이터가 있는 애플리케이션은 해당 위치를 기본 규칙으로 추가해야 합니다.

사용자 규칙에 대한 참고 사항

새 사용자 규칙이 기존 기본 규칙과 동일한 경우 새 사용자 규칙은 작업 규칙 집합의 기본 규칙을 재정의합니다. 새 사용자 규칙이 기존 사용자 규칙과 동일한 경우 이전 사용자 규칙이 대체됩니다.

fOverrideChildren 플래그를 설정하면 작업 규칙 집합에 다음과 같은 결과가 발생합니다.

  • TRUE 이면 작업 규칙 집합(사용자 규칙 및 기본 규칙 모두)에서 모든 자식 규칙이 제거됩니다.
  • FALSE이면 작업 규칙에 다시 추가하면 새 사용자 규칙의 자식인 모든 기본 규칙이 설정됩니다. 자식 기본 규칙이 포함이고 새 사용자 규칙이 제외인 경우 기본 규칙이 포함 사용자 규칙으로 변경됩니다.

 

범위 규칙 제거

ISearchCrawlScopeManager 인터페이스를 사용하여 작업 규칙 집합에서 scope 규칙을 제거할 수 있습니다. 이 인터페이스는 scope 규칙을 제거하기 위해 다음 두 가지 방법을 제공합니다.

메서드 설명
RemoveScopeRule 작업 규칙 집합에서 지정된 URL에 대한 사용자 규칙을 제거합니다. 사용자 규칙이 중복되거나 기본 규칙을 재정의하는 경우 기본 규칙은 작업 규칙 집합에 유지됩니다.
RemoveDefaultScopeRule 작업 규칙 집합과 기본 규칙 집합 모두에서 지정된 URL에 대한 기본 규칙을 제거합니다. 이 메서드를 호출한 후에는 RevertToDefaultScopes를 사용하여 이 기본 규칙에 되돌리기 수 없습니다.

 

각 메서드는 제거할 규칙이 포함 또는 제외 규칙인지 여부를 나타내는 URL과 플래그를 사용합니다. 이러한 메서드는 해당 URL 및 포함/제외 플래그가 있는 규칙을 찾을 수 없는 경우 오류를 반환합니다.

팁: 크롤링 scope scope 완전히 제거하려면 검색 루트 및 연결된 모든 scope 규칙을 제거하는 RemoveRoot 메서드를 사용합니다. 예를 들어 제거하는 동안 이 작업을 수행하는 것이 모범 사례로 간주됩니다.

검색 루트의 모든 사용자 집합 재정의를 제거하고 원래 검색 루트 및 기본 scope 규칙에 되돌리기 수도 있습니다. 자세한 내용은 다음 섹션을 참조하세요.

참고

Windows Vista에서 사용자가 제어판 사용자 프로필을 통해 제거되면 CSM은 SID를 포함하는 모든 규칙과 루트를 제거하고 카탈로그에서 인덱싱된 항목을 제거합니다. Windows XP에서는 사용자의 루트 및 규칙을 수동으로 제거해야 합니다.

 

 

기본 규칙으로 되돌리기

기본 규칙으로 되돌리면 URL 또는 루트에 대한 모든 사용자 규칙이 제거되고 모든 기본 규칙이 작업 규칙 집합으로 복원됩니다. 그러나 그룹 정책에 의해 설정된 규칙은 제거하지 않습니다. RevertToDefaultScopes 메서드는 매개 변수를 사용하지 않으며 기본 규칙을 되돌리기 수 없는 경우 오류 코드를 반환합니다.

 

범위 규칙 열거

CSM은 표준 COM 스타일 열거자 인터페이스인 IEnumSearchScopeRules 를 사용하여 scope 규칙을 열거합니다. 이 인터페이스를 사용하여 여러 용도로 scope 규칙을 열거할 수 있습니다. 예를 들어 전체 작업 규칙 집합을 사용자 인터페이스에 표시하거나 규칙 또는 규칙의 자식이 이미 크롤링 scope 있는지 검색할 수 있습니다.

 

범위 규칙 추적

또한 CSM을 사용하면 지정된 URL이 크롤링 scope 포함되는지 여부와 부모 또는 자식 scope 규칙이 있는지 여부를 확인할 수 있습니다. 크롤링 scope URL이 포함되거나 제외되는 이유를 확인할 수도 있습니다. 이러한 메서드는 패턴 URL과 함께 사용할 수 없습니다.

다음 표에서는 새 scope 규칙을 추가하는 데 사용되는 ISearchCrawlScopeManager의 메서드에 대해 설명합니다.

메서드 Description
GetParentScopeVersionId 부모 포함 URL의 버전 ID를 가져옵니다. 이 메서드를 사용하여 마지막으로 확인한 이후 부모 scope 변경되었는지 확인할 수 있습니다.
예: 메일 애플리케이션이 공급자 관리 알림을 사용하는 경우 닫히기 전에 부모 scope 버전을 가져와서 열리면 버전을 다시 검사 수 있습니다. 그런 다음 애플리케이션은 인덱서에 새 알림 집합을 푸시해야 하는지 여부를 결정할 수 있습니다.
HasChildScopeRule 지정된 URL에 자식 규칙(URL 계층 내의 모든 수준에서 자식에 적용되는 규칙)이 있으면 TRUE 를 반환합니다.
예: URL이 file:///C:\Folder\이면 CSM에 file:///C:\Folder\Subfolder\에 대한 scope 규칙이 있는 경우 이 메서드는 TRUE를 반환합니다.
HasParentScopeRule 지정된 URL에 부모 규칙(URL 계층 구조의 모든 수준에서 부모에 적용되는 규칙)이 있으면 TRUE 를 반환합니다.
예: URL이 file:///C:\Folder\Subfolder인 경우 CSM에 file:///C:\Folder\에 대한 scope 규칙이 있는 경우 이 메서드는 TRUE를 반환합니다.
IncludedInCrawlScope 지정된 URL이 크롤링 scope 포함된 경우 TRUE를 반환합니다.
IncludedInCrawlScopeEx URL이 크롤링 scope 포함되거나 제외되는 이유를 설명하는 CLUSION_REASON 열거형의 값을 반환하고 URL이 크롤링 scope 포함된 경우 TRUE 값을 검색합니다. 이 메서드는 작업 규칙 집합에서 충돌을 식별하는 데 도움이 될 수 있습니다.

 

 

참고

IncludedInCrawlScopeIncludedInCrawlScopeEx 메서드는 CSM의 규칙에 따라 URL을 크롤링할지 여부를 결정합니다. 설정 중인 FANCI 비트(즉, 사용자가 폴더의 속성 대화 상자에서 빠른 인덱싱을 허용하지 않음)와 같이 URL이 크롤링되지 않는 다른 이유가 있을 수 있습니다.

 

파일 경로를 제외해야 하지만 포함된 것으로 나열되는 경우 제외 규칙이 "<path>\*"로 끝나야 합니다. 파일 또는 파일 경로를 포함해야 하지만 포함되지 않은 경우 파일 또는 경로에 대한 FANCI 비트 설정을 검사 합니다. 파일 또는 파일 경로를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 빠른 검색을 위해 인덱싱 서비스에서 이 폴더를 인덱싱하도록 허용 확인란이 선택되어 있는지 확인합니다. 파일 또는 파일 경로가 여기에 인덱싱으로 표시되지 않으면 포함 규칙에 있더라도 인덱싱되지 않습니다.

참조

ISearchCrawlScopeManager

ISearchCrawlScopeManager2

ISearchScopeRule

IEnumSearchScopeRules

개념

검색 루트 관리