Partilhar 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 da Pesquisa do Windows

No Windows 7 e posterior, os filtros escritos em 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 do 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 reindexaçã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 propriedades correspondente, a reindexaçã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 anteriores, a instalação de um IFilter ou manipulador de propriedades não inicia uma reindexação de itens existentes, a menos que um ISV (fornecedor independente de software) chame explicitamente uma recompilação ou reindexaçã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 no qual o filtro é executado não precisa dos direitos para abrir arquivos no disco ou na rede.

Embora o Windows Search use apenas IPersistStream, você também pode incluir implementações da Interface IPersistFile e/ou 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 um novo 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:

  • 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 manipular o conteúdo e as propriedades.

Para obter mais informações sobre como desenvolver um filtro compatível, consulte os tópicos a seguir, IFilter (para aplicativos herdados) e Desenvolvendo 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 da DLL IFilter é resumido na tabela a seguir. Clicar no nome de um manipulador de filtro leva você para a descrição dessa implementação de IFilter .

Manipulador de filtro Arquivos filtrados IFilter DLL
Manipulador de filtro MIME MIME (Multipurpose Internet Mail Extension) mimefilt.dll
Manipulador de filtro HTML HTML 3.0 ou anterior nlhtml.dll
Manipulador de Filtro de Documento Microsoft Word, Excel, PowerPoint offfilt.dll
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 pelo Windows Search. Para obter uma descrição da associação entre IFilter e o tipo de arquivo, confira "Localizando a DLL de IFilter para um arquivo" em Registrando manipuladores de filtro.

Você pode usar o META recurso de marca de documentos HTML para transmitir solicitações de tratamento especial para o IFilter HTML. META As marcas ocorrem perto do início de um arquivo html dentro das HEAD ... /HEAD marcas, 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 HTML META são mapeadas automaticamente para valores 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 Propriedades definidas pelo sistema 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 palavra-chave no conjunto de propriedades Informações de Resumo.
meta name="ms.category" content="fiction" A propriedade category no conjunto de propriedades informações de resumo do documento.

Alguns recursos do IFilter HTML estão listados na tabela a seguir.

Tarefa Ação Exemplo
Criando resumos especiais de arquivos Use a META NAME="DESCRIPTION"... marca para instruir o IFilter a usar a cadeia de caracteres após o CONTENT palavra-chave 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 meta name marca 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 os arquivos de palavras de ruído) Adicione a marca a seguir 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, .ppt e .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 as Opções Avançadas no painel de controle Opções de Indexação para Propriedades de Índice ou Propriedades do Índice e Conteúdo do 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 faz marcar para 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, FileSize e Attributes.

Recursos adicionais

Desenvolvendo manipuladores de filtro

Sobre manipuladores de filtro na Pesquisa do Windows

Práticas recomendadas para criar manipuladores de filtro no Windows Search

Retornando propriedades de um manipulador de filtro

Implementando manipuladores de filtro na Pesquisa do Windows

Registrando manipuladores de filtro

Testando manipuladores de filtro