Compartilhar via


Notificando o índice de alterações (recursos de ambiente herdados do Windows)

Observação

O Windows Desktop Search 2.x é uma tecnologia obsoleta que estava originalmente disponível como um suplemento para Windows XP e Windows Server 2003. Em versões posteriores, use a Pesquisa do Windows .

Com a Pesquisa de Área de Trabalho do Microsoft Windows (WDS) 2.6, os manipuladores de protocolo de um determinado armazenamento de dados podem informar ao WDS Indexer quando os dados em seu repositório forem alterados. Isso melhora o desempenho garantindo que o Indexador não rastreie todo o repositório em índices incrementais. Usando APIs de notificação, os manipuladores de protocolo podem notificar o Indexador de que um item foi movido ou excluído e podem adicionar escopos à fila de URLs de rastreamento do Indexador do WDS que exige indexação. A notificação é útil para aplicativos como email, em que o manipulador de protocolo monitora o repositório e notifica o Indexador de que os itens foram alterados e exigem indexação.

ISearchItemsChangedSink

Os manipuladores de protocolo notificam o Indexador de alterações por meio da interface ISearchItemsChangedSink . Informações sobre alterações de dados devem ser coletadas em SEARCH_ITEM_CHANGE structs e SEARCH_KIND_OF_CHANGE tipos de enumeração e, em seguida, comunicadas ao Indexador por meio do método OnItemsChanged da interface ISearchItemsChangedSink .

Para acessar essa interface, um manipulador de protocolo personalizado deve primeiro instanciar um objeto ISearchManager para obter acesso ao objeto ISearchCatalogManager . A partir daí, é possível instanciar um objeto ISearchItemsChangedSink e notificar o Indexador sobre as alterações de dados.

O método OnItemsChanged permite coletar e comunicar alterações de dados ao armazenamento de dados do cliente para iniciar a indexação.

Direção Variável Descrição
Em dwNumberofChanges Número total de alterações na notificação.
Em DataChangeEntries[] Todas as notificações de alteração em uma matriz de estruturas de SEARCH_ITEM_CHANGE.
Saída dwBatchId A ID do lote que será passada novamente com erros.
Saída hrCompletionCodes[] Indica se cada URL foi aceita para indexação.

 

A estrutura SEARCH_ITEM_CHANGE identifica o tipo de alteração que ocorreu, bem como a URL atual do item e a URL anterior, se aplicável. A estrutura é definida da seguinte maneira:

Nome da propriedade Tipo de propriedade Descrição
Alterar SEARCH_KIND_OF_CHANGE O tipo de alteração que está sendo notificado.
URL LPWSTR A URL do objeto que foi alterado.
OldURL LPWSTR Se a notificação for uma movimentação, a URL antiga será fornecida e deverá ser exclusiva.
Prioridade SEARCH_NOTIFICATION_PRIORITY A prioridade da alteração.

 

A enumeração SEARCH_KIND_OF_CHANGE é definida da seguinte maneira:

Valor de enumeração Valor Descrição
SEARCH_CHANGE_ADD 0 A notificação é para uma URL adicional.
SEARCH_CHANGE_DELETE 1 A notificação é para a exclusão de uma URL.
SEARCH_CHANGE_MODIFY 2 A notificação é que uma URL foi modificada.
SEARCH_CHANGE_MOVE_RENAME 3 A notificação é para a movimentação e renomeação de um objeto para uma nova URL.
SEARCH_CHANGE_SEMANTICS_DIRECTORY 0x10000 A notificação é para uma URL de contêiner.
SEARCH_CHANGE_SEMANTICS_SHALLOW 0x20000 A notificação é para uma URL de contêiner que deve ter apenas suas propriedades de contêiner indexadas.
SEARCH_CHANGE_SEMANTICS_SECURITY 0x40000 A notificação é para uma URL ou URL de contêiner que teve suas propriedades de segurança alteradas.

 

A enumeração SEARCH_NOTIFICATION_PRIORITY é definida da seguinte maneira:

Valor de enumeração Valor Descrição
SEARCH_NORMAL_PRIORITY 0 Somente uma prioridade normal deve ser usada ao indexar a URL. Essas notificações são processadas antes da indexação incremental em segundo plano normal dos arquivos e repositórios de um usuário.