Compartilhar via


Filtrar manipuladores que enviam com o Windows

A Microsoft fornece vários filtros padrão com o Windows Search. Os clientes chamam esses manipuladores de filtro (que são implementações da interface IFilter) para extrair texto e propriedades de um documento.

Este tópico é organizado da seguinte maneira:

Notas de implementação de pesquisa do Windows

No Windows 7 e posterior, os filtros gravados no código gerenciado são explicitamente bloqueados. Os filtros DEVEM ser escritos em código nativo devido a possíveis problemas de controle de versão clr com o processo em que vários suplementos são executados.

Implementação do Windows 7 e 10

No Windows 7 e posterior, há um novo comportamento que ocorre ao registrar um manipulador de filtro, um manipulador de propriedades ou uma nova extensão. Quando um novo manipulador de propriedades e/ou manipulador de filtro é instalado, os arquivos com as extensões correspondentes são automaticamente indexados.

No Windows 7 e posterior, recomendamos que você instale um manipulador de filtro em conjunto com seus manipuladores de propriedade correspondentes e registre o manipulador de filtro antes do manipulador de propriedades. O registro do manipulador de propriedades inicia a re indexação imediata de arquivos indexados anteriormente sem antes exigir uma reinicialização e aproveita todos os manipuladores de filtro registrados anteriormente para fins de indexação de conteúdo.

Se apenas um manipulador de filtro estiver instalado sem um manipulador de propriedade correspondente, a re indexação automática ocorrerá após uma reinicialização do serviço de indexação ou uma reinicialização do sistema.

Para sinalizadores de descrição de propriedade específicos do Windows 7, consulte os seguintes tópicos de referência: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE e PROPDESC_SEARCHINFO_FLAGS.

Implementação do Windows Vista

No Windows Vista e anterior, instalar um IFilter ou manipulador de propriedades não inicia uma re indexação de itens existentes, a menos que um ISV (fornecedor de software) independente chame explicitamente uma recompilação ou re indexação de URLs correspondentes.

Há duas diferenças importantes entre aplicativos herdados, como o Serviço de Indexação e aplicativos mais recentes, como o Windows Search, que você deve estar ciente ao implementar filtros:

  • Uso da interface IPersistStream.
  • Uso de manipuladores de propriedade.

Primeiro, o Windows Vista e o Windows Search 3.0 e posteriores exigem que você use IPersistStream pelos seguintes motivos:

  • Para garantir o desempenho e a compatibilidade futura.
  • Para ajudar a aumentar a segurança. Os filtros implementados com IPersistStream são mais seguros porque o contexto em que o filtro é executado não precisa dos direitos para abrir arquivos no disco ou na rede.

Embora a Pesquisa do Windows use apenas IPersistStream, você também pode incluir interface IPersistFile e/ou implementações de interface IPersistStorage em seus filtros para compatibilidade com versões anteriores.

A segunda grande diferença é que o Windows Vista e o Windows Search 3.0 e posteriores têm uma nova do Sistema de Propriedades que usa manipuladores de propriedades para enumerar propriedades de itens.

No entanto, há momentos em que você precisa implementar um filtro que manipula o conteúdo e as propriedades para:

  • Dê suporte a implementações herdadas do MSSearch.
  • Percorrer links.
  • Preservar informações de idioma.
  • Filtrar recursivamente itens inseridos.

Nessas situações, você precisa de uma implementação de filtro completa, incluindo o método IFilter::GetValue para acessar valores de propriedade.

Implementação herdada

Conforme observado anteriormente, o Windows Vista e o Windows Search incluem um novo sistema de propriedades que encapsula as propriedades de um item separadas do conteúdo de um item. Esse sistema de propriedades não existe em versões anteriores do Microsoft Windows Desktop Search (WDS) 2.x. Se o filtro precisar dar suporte a outros aplicativos, conforme descrito acima, talvez seja necessário lidar com conteúdo e propriedades.

Para obter mais informações sobre como desenvolver um filtro compatível, consulte os tópicos a seguir, IFilter (para aplicativos herdados)e Desenvolver Suplementos de Filtro (para aplicativos herdados).

Filtros de Pesquisa do Windows

A Microsoft fornece vários filtros padrão com o Windows Search. O conteúdo de DLL IFilter é resumido na tabela a seguir. Clicar no nome de um manipulador de filtro leva você para a descrição da implementação do IFilter .

Manipulador de filtro Arquivos filtrados IFilter DLL
do manipulador de filtro MIME MIME (Extensão de Email da Internet multiuso) mimefilt.dll
do Manipulador de Filtro HTML HTML 3.0 ou anterior nlhtml.dll
do Manipulador de Filtro de Documento Microsoft Word, Excel, PowerPoint offfilt.dll
do Manipulador de Filtro de Texto Sem Formatação Arquivos de texto sem formatação – IFilter padrão query.dll
manipulador de filtro binário ou nulo Arquivos binários – IFilter nulo query.dll

Manipulador de filtro MIME

O manipulador de filtro MIME (em mimefilt.dll) extrai informações de texto e propriedade de arquivos com as extensões .eml, .mht e .mhtml.

Manipulador de Filtro HTML

O manipulador de filtro HTML (em nlhtml.dll) extrai informações de texto e propriedade da classe "htmlfiles" para que ele possa ser indexado pela Pesquisa do Windows. Para obter uma descrição da associação entre IFilter e o tipo de arquivo, consulte "Localizando a DLL do IFilter para um arquivo" em registrando manipuladores de filtro.

Você pode usar o recurso de marca de META de documentos HTML para transmitir solicitações especiais de tratamento para aIFilter deHTML. META marcas ocorrem perto do início de um arquivo html dentro das marcas de HEAD ... /HEAD, conforme ilustrado no exemplo a seguir.

   <head>
     <META NAME="DESCRIPTION"
           CONTENT="This text appears on the results page as the document's summary.">
   </head>

Algumas marcas de META HTML são mapeadas automaticamente para valores bem conhecidos do conjunto de propriedades e da ID da propriedade (PID (identificador de propriedade)) para que as consultas nessas propriedades pesquisem o conteúdo mapeado. Alguns exemplos são listados na tabela a seguir. Para obter uma lista das propriedades do sistema que você pode usar para seus formatos de arquivo, consulte System-Defined Propriedades para formatos de arquivo personalizados.

Exemplo de propriedade Mapeado para
meta name="author" content="ruth" A propriedade author no conjunto de propriedades Informações de Resumo.
meta name="subject" content="processamento de palavras" A propriedade subject no conjunto de propriedades Informações de Resumo.
meta name="keywords" content="fonts, serif" A propriedade de palavra-chave no conjunto de propriedades Informações de Resumo.
meta name="ms.category" content="fiction" A propriedade de categoria no conjunto de propriedades informações de resumo do documento.

Alguns recursos doIFilter deHTML estão listados na tabela a seguir.

Tarefa Ação Exemplo
Criando resumos especiais de arquivos Use a marca META NAME="DESCRIPTION"... para instruir oIFiltera usar a cadeia de caracteres seguindo a palavra-chave CONTENT como o resumo do documento.

Observação:
O processo de filtragem pode gerar resumos para cada arquivo filtrado, que usa como padrão um conjunto de caracteres no início do arquivo.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Impedindo que arquivos individuais sejam filtrados Adicione uma marca de meta name ao arquivo.
  <meta name="robots" content="noindex">
Definindo o código de idioma para um arquivo (para garantir que o sistema escolha os separadores de palavras de idioma corretos e arquivos de palavras de ruído) Adicione a seguinte marca meta name ao arquivo, em que o campo de conteúdo especifica o código de idioma apropriado (em caracteres ou usando o valor de localidade).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Manipulador de Filtro de Documento

O manipulador de filtro de documento (em offilt.dll) filtra arquivos para algumas extensões de documentos no Microsoft Office. Isso inclui arquivos com as extensões .doc, .mdb, .ppte .xlt, por exemplo.

Manipulador de filtro de texto sem formatação

Para arquivos de texto sem formatação, o Windows Search usa o manipulador de filtro de texto, que filtra as propriedades do sistema (como nomes de arquivo) e o conteúdo de um arquivo. Quando um tipo de arquivo não tem uma associação IFilter no registro, o Windows Search indexa apenas as propriedades do Shell para o arquivo. No entanto, o usuário pode usar o de Opções Avançadas no painel de controle opções de indexação para propriedades de índice ou propriedades de índice e conteúdo de arquivo.

captura de tela mostrando a caixa de diálogo opções avançadas

Se o usuário escolher essa opção para um tipo de arquivo sem um IFilter associado, o manipulador de filtro de texto será usado para extrair o conteúdo do arquivo. O manipulador de filtro de texto não "entende" nenhum formato de documento; ao filtrar o conteúdo de um arquivo, ele trata o arquivo como uma sequência de caracteres. Ele verifica a marca de ordem de bytes Unicode no início do arquivo.

Manipulador de filtro binário ou nulo

Quando um arquivo binário registrado é encontrado, o manipulador de filtro nulo é usado. O manipulador de filtro nulo recupera apenas as propriedades do sistema. O conteúdo de um arquivo binário não é filtrado. Exemplos de propriedades do sistema são FileName, LastWriteTime, FileSizee Attributes.

Recursos adicionais

desenvolvendo manipuladores de filtro

sobre manipuladores de filtro no de Pesquisa do Windows

práticas recomendadas para criar manipuladores de filtro no de Pesquisa do Windows

retornando propriedades de um manipulador de filtro

implementando manipuladores de filtro no de Pesquisa do Windows

registrando manipuladores de filtro

testando manipuladores de filtro