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
- de implementação do Windows 7 e 10
- de implementação do Windows Vista
- Legacy Implementation
- Filtros do Windows Search
- Recursos adicionais
- Tópicos relacionados
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:
- Uso do interface IPersistStream.
- Uso de manipuladores de propriedade.
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: |
|
|
Impedindo que arquivos individuais sejam filtrados | Adicione uma tag meta name ao arquivo. |
|
|
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). |
|
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.
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
- O IFilterSample exemplo de código, disponível em GitHub, demonstra como criar uma classe base IFilter para implementar o interface IFilter.
- Para obter uma visão geral do processo de indexação, consulte O processo de indexação.
- Para obter uma visão geral dos tipos de arquivo, consulte Tipos de arquivo.
- Para consultar atributos de associação de arquivo para um tipo de arquivo, consulte PerceivedTypes, SystemFileAssociations e Application Registration.
Tópicos relacionados
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