Поделиться через


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

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

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\version1\testfiles\
  • C:\ProjectA\version1\temp\data\

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

  • C:\ProjectA\version1\data\

 

Перед началом

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

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

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

 

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

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

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

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\.
IncludedInCrawlScope Возвращает значение TRUE, если указанный URL-адрес включен в область обхода контента.
IncludedInCrawlScopeEx Возвращает значение из перечисления CLUSION_REASON, объясняющее, почему URL-адрес включен в область обхода контента или исключается из него, и возвращает значение TRUE, если URL-адрес включен в область обхода контента. Этот метод помогает выявлять конфликты в рабочем наборе правил.

 

 

Примечание

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

 

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

Reference

ISearchCrawlScopeManager

ISearchCrawlScopeManager2

ISearchScopeRule

IEnumSearchScopeRules

Основные понятия

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