Partilhar via


Gerenciando regras de escopo

O Gerenciador de Escopo de Rastreamento (CSM) permite definir regras de escopo que incluem ou excluem URLs do escopo de rastreamento do Windows Search.

O CSM permite que você faça o seguinte:

  • Adicionar novas regras de escopo ao conjunto de regras de trabalho
  • Remover regras de escopo existentes
  • Enumerar regras de escopo padrão
  • Descobrir se uma URL específica está incluída ou excluída do escopo de rastreamento ou se tem uma regra de escopo pai ou filho

 

Este tópico abrange os seguintes assuntos:

Sobre regras de escopo

Uma regra de escopo é uma regra que inclui ou exclui URLs dentro de uma raiz de pesquisa de serem rastreadas e indexadas. As regras de inclusão fazem com que o indexador inclua essa URL no escopo do rabisco e as regras de exclusão fazem com que o indexador exclua essa URL (e seus filhos) do escopo de rastreamento.

Por exemplo, suponha que você tenha instalado um novo aplicativo cujos arquivos de dados estão localizados na pasta WorkteamA\ProjectFiles em um computador local. Suponha que você queira tudo dentro da pasta ProjectFiles indexado, exceto para itens na subpasta Protótipos. Nessa situação, você precisaria de uma regra de inclusão para myPH:///C:\WorkteamA\ProjectFiles\ e uma regra de exclusão para myPH:///C:\WorkteamA\ProjectFiles\Prototypes\.

Há três tipos de regras, com a seguinte ordem de precedência:

  1. Política de Grupo regras são definidas pelos administradores e podem substituir todas as outras regras.
  2. As regras de usuário são definidas por usuários que modificam o escopo na interface do usuário de opções do Windows Search. Os usuários ou outros aplicativos podem remover todas as regras de usuário e reverter para regras padrão.
  3. Normalmente, as regras padrão são definidas por um aplicativo para definir um escopo padrão. Por exemplo, as regras padrão podem ser definidas quando um novo manipulador de protocolo ou contêiner é adicionado ao sistema.

Juntos, esses tipos de regras compõem o conjunto de regras de trabalho do qual o Gerenciador de Escopo de Rastreamento (CSM) gera a lista completa de URLs a serem rastreadas. Embora as regras padrão possam ser substituídas por regras de política de grupo e por regras de usuário, elas são mantidas em seu próprio conjunto de regras padrão, que você pode reverter a qualquer momento. O indexador rastreia as URLs do conjunto de regras de trabalho e adiciona itens, propriedades e conteúdo ao catálogo.

Observação

Os usuários com acesso a Painel de Controle podem modificar as regras por meio dessa interface. Portanto, os aplicativos que oferecem gerenciamento de escopo sempre devem obter as regras diretamente do CSM usando os métodos de enumeração em vez de depender de uma cópia salva das regras de usuário.

 

As regras de exclusão podem definir URLs de padrão com o caractere curinga '*'; por exemplo: file:///C:\ProjectA\*\. Uma regra de exclusão usando esse padrão impede que o indexador rastreie todas as pastas no diretório ProjectA. Para obter um exemplo mais complicado, suponha que haja uma regra de inclusão para file:///C:\ProjectA\ e uma regra de padrão de exclusão para file:///C:\ProjectA\*\data\*. Nesse caso, o indexador rastrearia itens em:

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

Mas o indexador não rastrearia itens em:

  • C:\ProjectA\version1\data\

 

Antes de começar

Antes de usar qualquer uma das interfaces do Gerenciador de Escopo de Rastreamento, você deve executar as seguintes etapas de pré-requisito:

  1. Crie o objeto CSearchManager e obtenha sua interface ISearchManager .
  2. Chame ISearchManager::GetCatalog para "SystemIndex" para obter uma instância da interface ISearchCatalogManager .
  3. Chame ISearchCatalogManager::GetCrawlScopeManager para obter uma instância da interface ISearchCrawlScopeManager .

Depois de fazer alterações no Gerenciador de Escopo de Rastreamento, você deve chamar o método ISearchCrawlScopeManager::SaveAll . Esse método não usa parâmetros e retorna S_OK em caso de êxito.

 

Adicionando regras de escopo

As regras de trabalho definidas para o CSM incluem regras de usuário e padrão, bem como quaisquer regras forçadas pela política de grupo. As regras de usuário são configuradas pelos usuários em uma interface do usuário e as regras padrão podem ser definidas por qualquer um dos seguintes:

  • Políticas de grupo implementadas por um administrador do sistema (elas não usam a interface ISearchCrawlScopeManager .)
  • A instalação ou atualização de um aplicativo como o Windows Search ou um manipulador de protocolo
  • Um aplicativo de instalação para a adição de um novo armazenamento de dados ou contêiner

O ISearchCrawlScopeManager fornece dois métodos para adicionar novas regras de escopo, conforme descrito na tabela a seguir. Os caminhos para regras de inclusão para o sistema de arquivos devem terminar com uma barra invertida '\' (por exemplo, file:///C:\files\) e os caminhos para regras de exclusão devem terminar com um asterisco (por exemplo, file:///c:\files\*). Somente as regras de exclusão podem conter URLs de padrão. Além disso, recomendamos incluir SIDs (identificadores de segurança) dos usuários em caminhos, para melhorar a segurança. Os caminhos por usuário são mais seguros, pois as consultas seriam executadas em um processo por usuário, garantindo que um usuário não possa ver itens indexados da caixa de entrada de outro usuário, por exemplo.

A tabela a seguir descreve os métodos da interface ISearchCrawlScopeManager usada para adicionar novas regras de escopo.

Método Descrição
AddUserScopeRule Adiciona uma regra para uma URL, conforme especificado pelo usuário. Essas regras substituem as regras padrão. Use esse método se você implementou uma interface do usuário que permite que os usuários gerenciem suas próprias regras de escopo e URLs.
AddDefaultScopeRule Adiciona uma regra para uma URL, conforme especificado por outro aplicativo, como um manipulador de protocolo. Use esse método quando tiver implementado um novo manipulador de protocolo ou adicionado um novo armazenamento de dados. Essas regras podem ser substituídas por regras de usuário.

 

Cada método leva uma URL para um local indexável e sinalizadores que determinam se a URL deve ser incluída ou excluída. O parâmetro fFollowFlags é reservado para uso futuro. Quando você adiciona uma nova regra de escopo e o Gerenciador de Escopo de Rastreamento determina que a regra já existe (com base na URL ou no padrão fornecido), o conjunto de regras de trabalho é atualizado para que (1) a regra antiga seja substituída pela nova regra e (2) todas as regras de usuário que a contradizam sejam removidas.

Ponta: Embora a raiz file:// seja incluída por padrão no escopo de rastreamento, os Arquivos de Programas não são indexados por padrão. Portanto, os aplicativos com dados salvos em seu diretório arquivos de programas precisam adicionar sua localização como uma regra padrão.

Observações sobre regras de usuário

Se uma nova regra de usuário for igual a uma regra padrão existente, a nova regra de usuário substituirá a regra padrão no conjunto de regras de trabalho. Se a nova regra de usuário for igual a uma regra de usuário existente, a regra de usuário antiga será substituída.

Definir o sinalizador fOverrideChildren tem os seguintes resultados no conjunto de regras de trabalho:

  • TRUE resulta na remoção de todas as regras filho do conjunto de regras de trabalho (regras de usuário e regras padrão).
  • FALSE resulta na adição novamente às regras de trabalho que definem todas as regras padrão que são filhos da nova regra de usuário. Se uma regra padrão filho for uma inclusão e a nova regra de usuário for uma exclusão, a regra padrão será alterada para uma regra de usuário de inclusão.

 

Removendo regras de escopo

Você pode usar a interface ISearchCrawlScopeManager para remover uma regra de escopo do conjunto de regras de trabalho. Essa interface fornece os dois métodos a seguir para remover regras de escopo.

Método Descrição
RemoveScopeRule Remove uma regra de usuário para uma URL especificada do conjunto de regras de trabalho. Se a regra de usuário for uma duplicata ou substituir uma regra padrão, a regra padrão permanecerá no conjunto de regras de trabalho.
RemoveDefaultScopeRule Remove uma regra padrão para uma URL especificada do conjunto de regras de trabalho e do conjunto de regras padrão. Depois de chamar esse método, você não pode reverter a essa regra padrão usando RevertToDefaultScopes.

 

Cada método usa uma URL e um sinalizador que indica se a regra a ser removida é uma regra de inclusão ou exclusão. Esses métodos retornarão um erro se uma regra com essa URL e o sinalizador de inclusão/exclusão não for encontrada.

Ponta: Se você quiser remover um escopo totalmente do escopo de rastreamento, use o método RemoveRoot , que remove a raiz de pesquisa e todas as regras de escopo associadas. Fazer isso durante a desinstalação, por exemplo, é considerado uma prática recomendada.

Também é possível remover todas as substituições de conjunto de usuários de uma raiz de pesquisa e reverter para as regras de escopo padrão e raiz de pesquisa originais. Para obter mais informações, consulte a próxima seção.

Observação

No Windows Vista, se os usuários forem removidos por meio de Perfis de Usuário no Painel de Controle, o CSM removerá todas as regras e raízes que incluem seu SID e removerá seus itens indexados do catálogo. No Windows XP, você deve remover as raízes e as regras dos usuários manualmente.

 

 

Revertendo para regras padrão

Reverter para regras padrão remove todas as regras de usuário para uma URL ou raiz e restaura todas as regras padrão para o conjunto de regras de trabalho. No entanto, ele não remove as regras definidas pela política de grupo. O método RevertToDefaultScopes não usa parâmetros e retorna um código de erro se não for possível reverter às regras padrão.

 

Enumerando regras de escopo

O CSM enumera regras de escopo usando uma interface de enumerador de estilo COM padrão, IEnumSearchScopeRules . Você pode usar essa interface para enumerar regras de escopo para várias finalidades. Por exemplo, talvez você queira exibir todo o conjunto de regras de trabalho em uma interface do usuário ou descobrir se uma regra ou o filho de uma regra já está no escopo do rastreamento.

 

Regras de escopo de rastreamento

O CSM também permite determinar se uma URL especificada está incluída no escopo do rastreamento e se ela tem uma regra de escopo pai ou filho. Você também pode descobrir por que uma URL é incluída ou excluída do escopo de rastreamento. Esses métodos não se destinam a ser usados com URLs de padrão.

A tabela a seguir descreve os métodos de ISearchCrawlScopeManager usados para adicionar novas regras de escopo.

Método Descrição
GetParentScopeVersionId Obtém a ID de versão da URL de inclusão pai. Você pode usar esse método para ver se o escopo pai foi alterado desde a última vez que o verificou.
Exemplo: se um aplicativo de email usar notificações gerenciadas pelo provedor, ele poderá obter a versão do escopo pai antes de fechar e marcar a versão novamente quando for aberta. Em seguida, o aplicativo pode determinar se precisa enviar por push um novo conjunto de notificações para o indexador.
HasChildScopeRule Retornará TRUE se a URL especificada tiver uma regra filho (uma regra que se aplica a um filho em qualquer nível dentro de sua hierarquia de URL).
Exemplo: se a URL for file:///C:\Folder\, esse método retornará TRUE se o CSM tiver uma regra de escopo especificamente para file:///C:\Folder\Subfolder\.
HasParentScopeRule Retornará TRUE se a URL especificada tiver uma regra pai (uma regra que se aplica a um pai em qualquer nível na hierarquia de URL).
Exemplo: se a URL for file:///C:\Folder\Subfolder, esse método retornará TRUE se o CSM tiver uma regra de escopo especificamente para file:///C:\Folder\.
IncludedInCrawlScope Retornará TRUE se a URL especificada estiver incluída no escopo do rastreamento.
IncludedInCrawlScopeEx Retorna um valor da enumeração CLUSION_REASON explicando por que a URL está incluída ou excluída do escopo de rastreamento e recupera o valor TRUE se a URL estiver incluída no escopo do rastreamento. Esse método pode ajudá-lo a identificar conflitos no conjunto de regras de trabalho.

 

 

Observação

Os métodos IncludedInCrawlScope e IncludedInCrawlScopeEx determinam se a URL será rastreada com base apenas nas regras no CSM. Pode haver outros motivos pelos quais uma URL não está rastreada, como o bit FANCI que está sendo definido (ou seja, um usuário não permitiu a indexação rápida na caixa de diálogo Propriedade da pasta.)

 

Se você acredita que um caminho de arquivo deve ser excluído, mas ele está listado como incluído, certifique-se de que as regras de exclusão terminem com "<path>\*". Se você acredita que um arquivo ou caminho de arquivo deve ser incluído, mas não está, certifique-se de marcar a configuração de bit FANCI para o arquivo ou caminho. Você pode fazer isso clicando com o botão direito do mouse no caminho do arquivo ou arquivo e selecionando Propriedades e, em seguida, verifique se a caixa de seleção Para pesquisa rápida, permita que o Serviço de Indexação indexe essa pasta está selecionada. Se o arquivo ou caminho do arquivo não estiver marcado para indexação aqui, ele não será indexado mesmo que esteja em uma regra de inclusão.

Referência

ISearchCrawlScopeManager

ISearchCrawlScopeManager2

ISearchScopeRule

IEnumSearchScopeRules

Conceitual

Gerenciar raízes de pesquisa