Partilhar via


Manipuladores de filtro fornecidos 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 está organizado da seguinte forma:

Notas de implementação do Windows Search

No Windows 7 e versões posteriores, 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 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, manipulador de propriedades ou 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 reindexados.

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 primeiro exigir uma reinicialização e aproveita qualquer manipulador de filtro registrado anteriormente para fins de indexação de conteúdo.

Se apenas um manipulador de filtro for 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 versões anteriores, a instalação de umIFilterou manipulador de propriedades não inicia uma reindexação de itens existentes, a menos que um fornecedor independente de software (ISV) chame explicitamente uma reconstrução ou reindexação de URLs correspondentes.

Há duas grandes diferenças 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:

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

  • Para garantir o desempenho e 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 pela rede.

Embora o Windows Search use apenas IPersistStream, você também pode incluir da Interface IPersistFile e/ou implementações da 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 versões posteriores têm um novo Property System que usa manipuladores de propriedade 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 MSSearch herdadas.
  • Ligações transversais.
  • Preservar informações sobre o idioma.
  • Filtre recursivamente itens incorporados.

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 do legado

Como observado anteriormente, o Windows Vista e o Windows Search incluem um novo sistema de propriedades que encapsula as propriedades de um item que são separadas do conteúdo de um item. Este sistema de propriedades não existe em versões anteriores do Microsoft Windows Desktop Search (WDS) 2.x. Se o filtro tiver de suportar outras aplicações conforme descrito acima, poderá ter de lidar com 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 do Windows Search

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

Manipulador de filtros Ficheiros filtrados IFilter DLL
Manipulador de filtro MIME Extensão Multipurpose Internet Mail (MIME) mimefilt.dll
manipulador de filtro HTML HTML 3.0 ou anterior nlhtml.dll
manipulador de filtro de documentos Microsoft Word, Excel, PowerPoint offfilt.dll
Manipulador de filtro de texto sem formatação Arquivos de texto simples - 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 texto e informações de propriedade de arquivos com as extensões .eml, .mht e .mhtml.

Manipulador de filtro HTML

O manipulador de filtro HTML (em nlhtml.dll) extrai texto e informações de propriedade da classe "htmlfiles" para que possam ser indexados pelo Windows Search. Para obter uma descrição da associação entre IFilter e o tipo de arquivo, consulte "Localizando a DLL IFilter para um arquivo" em Registrando manipuladores de filtro.

Você pode usar o recurso de marca META de documentos HTML para transmitir solicitações de tratamento especiais para o HTML IFilter. META tags ocorrem perto do início de um arquivo html dentro das tags 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 tags HTML META são automaticamente mapeadas para conjuntos de propriedades bem conhecidos e valores de ID de propriedade (identificador de propriedade (PID)) para que as consultas nessas propriedades pesquisem o conteúdo mapeado. Alguns exemplos estã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="autor" content="ruth" A propriedade author no conjunto de propriedades Summary Information.
meta name="subject" content="processamento de texto" A propriedade subject no conjunto de propriedades Summary Information.
meta name="palavras-chave" content="fontes, serif" A propriedade keyword no conjunto de propriedades Informações de Resumo.
meta name="ms.category" content="ficção" A propriedade category no conjunto de propriedades Informações de Resumo do documento.

Alguns recursos doHTMLIFilter estão listados na tabela a seguir.

Tarefa Ação Exemplo
Criação de resumos especiais a partir de arquivos Use a marca META NAME="DESCRIPTION"... para instruir o IFilter a usar a cadeia de caracteres após a palavra-chave CONTENT como resumo do documento.

Nota:
O processo de filtragem pode gerar resumos para cada arquivo filtrado, que por 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 tag meta name ao arquivo.
  <meta name="robots" content="noindex">
Definir o código de idioma para um arquivo (para garantir que o sistema escolha o idioma correto separadores de palavras e arquivos de palavras de ruído) Adicione a seguinte marca meta name ao arquivo, onde 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 documentos

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

Manipulador de filtro de texto simples

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 arquivos) 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 Opções Avançadas no painel de controle Opções de Indexação para Propriedades de Índice ou Propriedades de Í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 umIFilter deassociado, 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 Windows Search

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

retornando propriedades de um manipulador de filtro

Implementando manipuladores de filtro no Windows Search

Registrando manipuladores de filtro

Testando manipuladores de filtro