Gestionnaires de filtres fournis avec Windows
Microsoft fournit plusieurs filtres standard avec Windows Search. Les clients appellent ces gestionnaires de filtres (qui sont des implémentations de l’interface IFilter) pour extraire du texte et des propriétés d’un document.
Cette rubrique est organisée comme suit :
- notes d’implémentation de Recherche Windows
- implémentation de Windows 7 et 10
- d’implémentation de Windows Vista
- d’implémentation héritée
-
filtres de recherche Windows
- gestionnaire de filtre MIME
- gestionnaire de filtre HTML
- gestionnaire de filtre de documents
- gestionnaire de filtre de texte brut
- gestionnaire de filtres binaires ou Null
- ressources supplémentaires
- rubriques connexes
Notes d’implémentation de Windows Search
Dans Windows 7 et versions ultérieures, les filtres écrits dans le code managé sont explicitement bloqués. Les filtres DOIVENT être écrits en code natif en raison de problèmes potentiels de contrôle de version CLR avec le processus dans lequel plusieurs compléments s’exécutent.
Implémentation de Windows 7 et 10
Dans Windows 7 et versions ultérieures, il existe un nouveau comportement qui se produit lors de l’inscription d’un gestionnaire de filtres, d’un gestionnaire de propriétés ou d’une nouvelle extension. Lorsqu’un nouveau gestionnaire de propriétés et/ou gestionnaire de filtre est installé, les fichiers avec les extensions correspondantes sont automatiquement réindexés.
Dans Windows 7 et versions ultérieures, nous vous recommandons d’installer un gestionnaire de filtre conjointement avec ses gestionnaires de propriétés correspondants et d’inscrire le gestionnaire de filtres avant le gestionnaire de propriétés. L’inscription du gestionnaire de propriétés initie immédiatement la réindexation des fichiers précédemment indexés sans avoir besoin d’un redémarrage et tire parti des gestionnaires de filtres précédemment inscrits à des fins d’indexation de contenu.
Si seul un gestionnaire de filtres est installé sans gestionnaire de propriétés correspondant, l’indexation automatique se produit après un redémarrage du service d’indexation ou un redémarrage du système.
Pour connaître les indicateurs de description de propriété spécifiques à Windows 7, consultez les rubriques de référence suivantes : GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE et PROPDESC_SEARCHINFO_FLAGS.
Implémentation de Windows Vista
Dans Windows Vista et les versions antérieures, l’installation d’un IFilter ou du gestionnaire de propriétés ne lance pas de réindexation d’éléments existants, sauf si un fournisseur de logiciels indépendant appelle explicitement une reconstruction ou une réindexation des URL correspondantes.
Il existe deux différences majeures entre les applications héritées telles que le service d’indexation et les applications plus récentes comme Windows Search dont vous devez être conscient lors de l’implémentation de filtres :
- Utilisation de l’interface IPersistStream.
- Utilisation de gestionnaires de propriétés.
Tout d’abord, Windows Vista et Windows Search 3.0 et versions ultérieures nécessitent l’utilisation de IPersistStream pour les raisons suivantes :
- Pour garantir les performances et la compatibilité future.
- Pour renforcer la sécurité. Les filtres implémentés avec IPersistStream sont plus sécurisés, car le contexte dans lequel le filtre s’exécute n’a pas besoin des droits d’ouverture de fichiers sur le disque ou sur le réseau.
Bien que Windows Search utilise uniquement IPersistStream, vous pouvez également inclure interface IPersistFile interface et/ou interface IPersistStorage implémentations dans vos filtres pour la compatibilité descendante.
La deuxième différence majeure est que Windows Vista et Windows Search 3.0 et versions ultérieures ont un nouveau système de propriétés qui utilise des gestionnaires de propriétés pour énumérer les propriétés des éléments.
Toutefois, il existe des moments où vous devez implémenter un filtre qui gère à la fois le contenu et les propriétés pour :
- Prendre en charge les implémentations MSSearch héritées.
- Parcourir les liens.
- Conservez les informations de langue.
- Filtrez de manière récursive les éléments incorporés.
Dans ces situations, vous avez besoin d’une implémentation de filtre complète, y compris la méthode IFilter ::GetValue pour accéder aux valeurs de propriété.
Implémentation héritée
Comme indiqué précédemment, Windows Vista et Windows Search incluent un nouveau système de propriétés qui encapsule les propriétés d’un élément qui sont séparées du contenu d’un élément. Ce système de propriétés n’existe pas dans les versions antérieures de Microsoft Windows Desktop Search (WDS) 2.x. Si votre filtre doit prendre en charge d’autres applications comme décrit ci-dessus, il peut être nécessaire de gérer le contenu et les propriétés.
Pour plus d’informations sur le développement d’un filtre compatible, consultez les rubriques suivantes, IFilter (pour les applications héritées)et développement de compléments de filtre (pour les applications héritées).
Filtres de recherche Windows
Microsoft fournit plusieurs filtres standard avec Windows Search. Le contenuDLLIFilter est résumé dans le tableau suivant. En cliquant sur le nom d’un gestionnaire de filtres, vous accédez à la description de cette implémentation IFilter.
Gestionnaire de filtres | Fichiers filtrés | IFilter DLL |
---|---|---|
gestionnaire de filtre MIME | Extension mime (Multipurpose Internet Mail Extension) | mimefilt.dll |
gestionnaire de filtre HTML | HTML 3.0 ou version antérieure | nlhtml.dll |
gestionnaire de filtre de documents | Microsoft Word, Excel, PowerPoint | offfilt.dll |
gestionnaire de filtre de texte brut | Fichiers texte brut - IFilter par défaut | query.dll |
gestionnaire de filtres binaires ou Null | Fichiers binaires - IFilter Null | query.dll |
Gestionnaire de filtre MIME
Le gestionnaire de filtre MIME (en mimefilt.dll) extrait du texte et des informations de propriété à partir de fichiers avec les extensions .eml, .mht et .mhtml.
Gestionnaire de filtre HTML
Le gestionnaire de filtre HTML (dans nlhtml.dll) extrait du texte et des informations de propriété de la classe « htmlfiles » afin qu’il puisse être indexé par Windows Search. Pour obtenir une description de l’association entre IFilter et le type de fichier, consultez « Recherche de la DLL IFilter pour un fichier » dans Inscrire des gestionnaires de filtres.
Vous pouvez utiliser la fonctionnalité de balise de META
de documents HTML pour transmettre des demandes de gestion spéciales au IFilterHTML.
META
balises se produisent près du début d’un fichier html dans les balises HEAD ... /HEAD
, comme illustré dans l’exemple suivant.
<head>
<META NAME="DESCRIPTION"
CONTENT="This text appears on the results page as the document's summary.">
</head>
Certaines balises HTML META
sont automatiquement mappées aux valeurs d’ensemble de propriétés connus et d’ID de propriété (PID) afin que les requêtes sur ces propriétés recherchent le contenu mappé. Voici quelques exemples répertoriés dans le tableau suivant. Pour obtenir la liste des propriétés système que vous pouvez utiliser pour vos formats de fichier, consultez System-Defined Propriétés des formats de fichiers personnalisés.
Exemple de propriété | Mappé à |
---|---|
meta name="author » content="ruth » | Propriété auteur dans le jeu de propriétés Informations récapitulatives. |
meta name="subject » content="word processing » | Propriété de l’objet dans le jeu de propriétés Informations récapitulatives. |
meta name="keywords » content="fonts, serif » | Propriété de mot clé dans le jeu de propriétés Informations récapitulatives. |
meta name="ms.category » content="fiction » | Propriété de catégorie dans le jeu de propriétés Informations récapitulatives du document. |
Certaines fonctionnalités du IFilter html sont répertoriées dans le tableau suivant.
Tâche | Action | Exemple | |
---|---|---|---|
Création d’extraits spéciaux à partir de fichiers | Utilisez la balise META NAME="DESCRIPTION"... pour indiquer au IFilter d’utiliser la chaîne suivant le mot clé CONTENT comme résumé du document.
remarque : |
|
|
Empêcher le filtrage des fichiers individuels | Ajoutez une balise meta name au fichier. |
|
|
Définition du code de langue d’un fichier (pour vous assurer que le système choisit les analyseurs de mots linguistiques appropriés et les fichiers word parasites) | Ajoutez la balise meta name suivante au fichier, où le champ de contenu spécifie le code de langue approprié (en caractères ou à l’aide de la valeur de paramètres régionaux). |
|
Gestionnaire de filtre de document
Le gestionnaire de filtre de documents (dans offilt.dll) filtre les fichiers pour certaines extensions de documents dans Microsoft Office. Ces fichiers incluent des fichiers avec les extensions .doc, .mdb, .pptet .xlt, par exemple.
Gestionnaire de filtre de texte brut
Pour les fichiers en texte brut, Windows Search utilise le gestionnaire de filtre de texte, qui filtre les propriétés système (telles que les noms de fichiers) et le contenu d’un fichier. Lorsqu’un type de fichier n’a pas d’association IFilter dans le Registre, Windows Search indexe uniquement les propriétés Shell du fichier. Toutefois, l’utilisateur peut utiliser options avancées dans le panneau de configuration options d’indexation pour propriétés d’index ou propriétés d’index et le contenu du fichier.
Si l’utilisateur choisit cette option pour un type de fichier sans iFilter associé, le gestionnaire de filtre de texte est utilisé pour extraire le contenu du fichier. Le gestionnaire de filtre de texte ne « comprend » aucun format de document ; lors du filtrage du contenu d’un fichier, il traite le fichier comme une séquence de caractères. Il vérifie la marque d’ordre d’octet Unicode au début du fichier.
Gestionnaire de filtre binaire ou Null
Lorsqu’un fichier binaire inscrit est rencontré, le gestionnaire de filtre Null est utilisé. Le gestionnaire de filtre Null récupère uniquement les propriétés système. Le contenu d’un fichier binaire n’est pas filtré. Des exemples de propriétés système sont FileName, LastWriteTime, FileSizeet Attributs.
Ressources additionnelles
- L’exemple de code IFilterSample, disponible sur GitHub, montre comment créer une classe de base IFilter pour implémenter l’interface IFilter.
- Pour obtenir une vue d’ensemble du processus d’indexation, consultez Le processus d’indexation.
- Pour obtenir une vue d’ensemble des types de fichiers, consultez types de fichiers.
- Pour interroger des attributs d’association de fichiers pour un type de fichier, consultez PerceivedTypes, SystemFileAssociations et application Registration.
Rubriques connexes
développement de gestionnaires de filtres
à propos des gestionnaires de filtres dans les De recherche Windows
meilleures pratiques pour la création de gestionnaires de filtres dans windows Search
renvoyer des propriétés à partir d’un gestionnaire de filtres
implémentation de gestionnaires de filtres dans windows Search