Управление правилами области видимости

Диспетчер областей обхода (CSM) позволяет определить правила области, которые включают или исключают URL-адреса из области обхода поиска Windows.

CSM позволяет выполнить следующие действия.

  • Добавление новых правил области в рабочий набор правил
  • Удалите существующие правила области
  • Перечислите правила области видимости по умолчанию
  • Узнайте, включен ли URL-адрес в область сканирования, исключен из нее или имеет правило для родительской или дочерней области.

 

В этом разделе содержатся следующие темы:

Сведения о правилах области

Правило области — это правило, которое включает или исключает URL-адреса в корневом каталоге поиска от обхода и индексирования. Правила включения приводят к тому, что индексатор включает этот URL-адрес в область scrawl, а правила исключения приводят к исключению индексатора этого URL-адреса (и его дочерних элементов) из области обхода.

Например, предположим, что вы установили новое приложение, файлы данных которого находятся в папке WorkteamA\ProjectFiles на локальном компьютере. Предположим, вы хотите, чтобы все в папке ProjectFiles индексировалось, за исключением элементов в подпапке Prototypes. В этой ситуации потребуется правило включения для myPH:///C:\WorkteamA\ProjectFiles\ и правило исключения для myPH:///C:\WorkteamA\ProjectFiles\Prototypes\.

Существует три типа правил с следующим порядком приоритета:

  1. Правила групповой политики задаются администраторами и могут переопределять все остальные правила.
  2. Правила пользователей задаются пользователями, изменяющими область в пользовательском интерфейсе параметров поиска Windows. Пользователи или другие приложения могут удалить все правила пользователей и вернуться к правилам по умолчанию.
  3. Правила по умолчанию обычно задаются приложением для определения области по умолчанию. Например, правила по умолчанию могут быть заданы при добавлении нового обработчика протокола или контейнера в систему.

Вместе эти типы правил составляют рабочий набор , из которого Диспетчер областей обхода (CSM) создаёт полный список URL-адресов для обхода. Хотя правила по умолчанию могут быть переопределены правилами групповой политики и правилами пользователей, они сохраняются в собственном наборе правил по умолчанию, к которому можно вернуться в любое время. Индексатор выполняет обход URL-адресов из рабочего набора правил и добавляет элементы, свойства и содержимое в каталог.

Заметка

Пользователи с доступом к панели управления могут изменять правила с помощью этого интерфейса. Таким образом, приложения, предлагающие управление областями, всегда должны получать правила непосредственно из CSM с помощью методов перечисления вместо того, чтобы полагаться на сохраненную копию правил пользователя.

 

Правила исключения могут определять URL-адреса шаблонов с подстановочным символом "*"; например: file:///C:\ProjectA\*\\. Правило исключения, используюющее этот шаблон, запрещает индексатору выполнять обход папок в каталоге ProjectA. Для более сложного примера предположим, что существует правило включения для file:///C:\ProjectA\ и правило шаблона исключения для file:///C:\ProjectA\*\data\*. В этом случае индексатор будет выполнять обход элементов в следующих местоположениях:

  • C:\ProjectA\
  • C:\ProjectA\версия 1\testfiles\
  • C:\ProjectA\версии 1\temp\data\

Но индексатор не будет выполнять обход элементов в:

  • C:\ProjectA\версии 1\data\

 

Перед тем как начать

Прежде чем использовать любой из интерфейсов диспетчера областей обхода, необходимо выполнить следующие необходимые действия.

  1. Создайте объект CSearchManager и получите его интерфейс ISearchManager.
  2. Вызовите ISearchManager::GetCatalog с параметром "SystemIndex", чтобы получить экземпляр интерфейса ISearchCatalogManager.
  3. Вызовите ISearchCatalogManager::GetCrawlScopeManager, чтобы получить экземпляр интерфейса ISearchCrawlScopeManager.

После внесения изменений в диспетчер области обхода нужно вызвать метод ISearchCrawlScopeManager::SaveAll. Этот метод не принимает параметров и возвращает S_OK при успешном выполнении.

 

Добавление правил области видимости

Рабочие правила, заданные для CSM, включают правила пользователя и по умолчанию, а также любые правила, принудительно выполняемые групповой политикой. Правила пользователей настраиваются пользователями в пользовательском интерфейсе, а правила по умолчанию могут быть заданы любым из следующих элементов:

  • Групповые политики, реализованные системным администратором (они не используют интерфейс ISearchCrawlScopeManager.)
  • Установка или обновление приложения, например поиска Windows или обработчика протокола
  • Приложение установки для добавления нового хранилища данных или контейнера

ISearchCrawlScopeManager предоставляет два метода для добавления новых правил области, как описано в следующей таблице. Пути к правилам включения файловой системы должны заканчиваться обратной косой чертой "\" (например, file:///C:\files\), а пути для правил исключения должны заканчиваться звездочкой (например, file:///c:\files\*). Только правила исключения могут содержать URL-адреса шаблонов. Кроме того, мы рекомендуем включить идентификаторы безопасности пользователей (SID) в пути для повышения безопасности. Пути для каждого пользователя более безопасны, так как запросы выполняются в отдельном процессе каждого пользователя, гарантируя, что один пользователь не может видеть элементы, индексированные из почтового ящика "Входящие" другого пользователя, например.

В следующей таблице описаны методы интерфейса ISearchCrawlScopeManager, используемого для добавления новых правил области.

Метод Описание
AddUserScopeRule Добавляет правило для URL-адреса, указанного пользователем. Эти правила переопределяют правила по умолчанию. Используйте этот метод, если вы реализовали пользовательский интерфейс, который позволяет пользователям управлять собственными правилами и URL-адресами области.
AddDefaultScopeRule Добавляет правило для URL-адреса, как указано другим приложением, например обработчиком протокола. Используйте этот метод при реализации нового обработчика протокола или добавлении нового хранилища данных. Эти правила можно переопределить правилами пользователя.

 

Каждый метод принимает URL-адрес для индексируемого расположения и флаги, указывающие, следует ли включать или исключать URL-адрес. Параметр fFollowFlags зарезервирован для дальнейшего использования. При добавлении нового правила области, если диспетчером областей обхода определяется, что правило уже существует (в зависимости от указанного URL-адреса или шаблона), рабочий набор правил обновляется: (1) старое правило заменяется новым, (2) все противоречащие ему пользовательские правила удаляются.

Совет. Хотя корневой каталог file:// включен по умолчанию в область обхода, Program Files не индексируется по умолчанию. Поэтому приложения с данными, сохраненными в каталоге Program Files, должны добавить свое расположение в качестве правила по умолчанию.

Заметки о правилах пользователя

Если новое правило пользователя совпадает с существующим правилом по умолчанию, новое правило пользователя переопределяет правило по умолчанию в рабочем наборе правил. Если новое правило пользователя совпадает с существующим правилом пользователя, старое правило пользователя будет заменено.

Задание флага fOverrideChildren имеет следующие результаты в рабочем наборе правил:

  • TRUE приводит к удалению всех дочерних правил из рабочего набора правил (как правил пользователя, так и правил по умолчанию).
  • FALSE приводит к тому, что все правила по умолчанию, являющиеся дочерними элементами нового пользовательского правила, вновь добавляются в рабочий набор правил. Если дочернее правило по умолчанию является включением, а новое правило пользователя является исключением, правило по умолчанию изменяется на правило включения пользователя.

 

Удаление правил области

Для удаления правила области из рабочего набора правил можно использовать интерфейс ISearchCrawlScopeManager. Этот интерфейс предоставляет следующие два метода для удаления правил области.

Метод Описание
RemoveScopeRule Удаляет правило пользователя для указанного URL-адреса из рабочего набора правил. Если правило пользователя является дубликатом или переопределяет правило по умолчанию, правило по умолчанию остается в рабочем наборе правил.
RemoveDefaultScopeRule Удаляет правило по умолчанию для указанного URL-адреса как из рабочего набора правил, так и набора правил по умолчанию. После вызова этого метода невозможно вернуться к этому правилу по умолчанию с помощью RevertToDefaultScopes.

 

Каждый метод принимает URL-адрес и флаг, указывающий, какое правило должно быть удалено - правило включения или исключения. Эти методы возвращают ошибку, если правило с этим URL-адресом и флагом включения или исключения не найдено.

Совет : Если вы хотите полностью удалить область из области сканирования, используйте метод RemoveRoot, который удаляет корень поиска и все связанные с ним правила области. Это считается лучшей практикой, например, при удалении.

Кроме того, можно удалить все переопределения корня поиска, заданные пользователем, и вернуться к исходному корню поиска и правилам области поиска по умолчанию. Дополнительные сведения см. в следующем разделе.

Заметка

В Windows Vista, если пользователи удаляются с помощью профилей пользователей на панели управления, CSM удаляет все правила и корни, которые включают их идентификатор безопасности, и удаляет их индексированные элементы из каталога. В Windows XP необходимо вручную удалить корни и правила пользователей.

 

 

Возврат к правилам по умолчанию

При возврате к правилам по умолчанию все пользовательские правила для URL-адреса или корневого адреса удаляются и восстанавливают все правила по умолчанию в рабочем наборе правил. Однако он не удаляет правила, заданные групповой политикой. Метод RevertToDefaultScopes не принимает параметров и возвращает код ошибки, если не удается вернуться к правилам по умолчанию.

 

Перечисление правил области видимости

CSM перечисляет правила области с помощью стандартного интерфейса перечислителя в стиле COM, IEnumSearchScopeRules. Этот интерфейс можно использовать для перечисления правил области в нескольких целях. Например, может потребоваться отобразить весь актуальный набор правил в пользовательском интерфейсе или узнать, находится ли правило или его дочерний элемент уже в области обхода.

 

Правила области трассировки

CSM также позволяет определить, включен ли указанный URL-адрес в область обхода и имеет ли он родительское или дочернее правило области действия. Вы также можете узнать, почему URL-адрес включен или исключен из области обхода. Эти методы не предназначены для использования с шаблонными URL-адресами.

В следующей таблице описаны методы ISearchCrawlScopeManager, используемые для добавления новых правил области.

Метод Описание
GetParentScopeVersionId Возвращает идентификатор версии URL-адреса родительского включения. Этот метод можно использовать, чтобы узнать, изменилась ли родительская область с момента последней проверки.
Пример. Если почтовое приложение использует уведомления, управляемые поставщиком, оно может получить версию родительской области перед закрытием и снова проверить версию при открытии. Затем приложение может определить, нужно ли отправлять новый набор уведомлений индексатору.
HasChildScopeRule Возвращает TRUE, если указанный URL-адрес имеет дочернее правило (правило, применяющееся к дочернему элементу на любом уровне в иерархии URL-адресов).
Пример: Если URL-адрес file:///C:\Folder\, этот метод возвращает TRUE, если CSM имеет правило области действия специально для file:///C:\Folder\Subfolder\.
HasParentScopeRule Возвращает TRUE, если указанный URL-адрес имеет родительское правило (правило, применяющееся к родительскому элементу на любом уровне в иерархии URL-адресов).
Пример. Если URL-адрес file:///C:\Folder\Subfolder, этот метод возвращает TRUE, если CSM имеет правило области специально для file:///C:\Folder\.
Включено в область сканирования Возвращает TRUE, если указанный URL-адрес включен в область обхода.
включеноInCrawlScopeEx Возвращает значение из перечисления CLUSION_REASON, объясняющее, почему URL-адрес включен или исключен из области обхода, и получает значение TRUE, если URL-адрес включен в область обхода. Этот метод поможет выявить конфликты в рабочем наборе правил.

 

 

Заметка

Методы IncludedInCrawlScope и IncludedInCrawlScopeEx определяют, будет ли URL-адрес подвергаться обходу исключительно на основе правил, установленных в CSM. Могут быть и другие причины, по которым URL-адрес не индексируется, например, установлен бит FANCI (то есть, пользователь запретил быстрое индексирование в диалоговом окне "Свойства папки").

 

Если вы считаете, что путь к файлу должен быть исключен, но он указан как включенный, убедитесь, что правила исключения заканчиваются на "<path>\*". Если вы считаете, что файл или путь к файлу должен быть включен, но это не так, обязательно проверьте значение бита FANCI для файла или пути. Это можно сделать, щелкнув правой кнопкой мыши на файл или путь к файлу и выбрав Свойства, затем убедитесь, что установлен флажок Для быстрого поиска разрешить Службе индексирования индексировать эту папку. Если файл или путь к файлу не помечен для индексирования здесь, он не будет индексирован, даже если он находится в правиле включения.

Справочник

ISearchCrawlScopeManager

ISearchCrawlScopeManager2

ISearchScopeRule

IEnumSearchScopeRules

концептуальные

управление корнями поиска