Filtrer les gestionnaires qui sont 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

Dans Windows 7 et versions ultérieures, les filtres écrits en code managé sont explicitement bloqués. Les filtres DOIVENT être écrits dans du 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, un nouveau comportement 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 filtre avant le gestionnaire de propriétés. L’inscription du gestionnaire de propriétés lance une réindexation immédiate des fichiers précédemment indexés sans nécessiter de 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, la réindexation automatique se produit soit après un redémarrage du service d’indexation, soit après un redémarrage du système.

Pour connaître les indicateurs de description de propriétés 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 d’un gestionnaire de propriétés n’initie pas une réindexation d’éléments existants, sauf si un fournisseur de logiciels indépendant (ISV) 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 que vous devez connaître 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 d’IPersistStream pour les raisons suivantes :

  • Pour garantir les performances et la compatibilité future.
  • Pour améliorer 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 pour ouvrir des fichiers sur le disque ou sur le réseau.

Bien que La Recherche Windows utilise uniquement IPersistStream, vous pouvez également inclure des implémentations de l’interface IPersistFile et/ou de l’interface IPersistStorage dans vos filtres à des fins de 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 arrive que vous deviez implémenter un filtre qui gère à la fois le contenu et les propriétés afin de :

  • Prise en charge des implémentations MSSearch héritées.
  • Liens de traverse.
  • 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 distinctes 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 avoir besoin de gérer à la fois 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 contenu de la DLL IFilter est résumé dans le tableau suivant. En cliquant sur le nom d’un gestionnaire de filtre, vous accédez à la description de cette implémentation IFilter .

Gestionnaire de filtres Fichiers filtrés IFilter DLL
Gestionnaire de filtre MIME MIME (Multipurpose Internet Mail Extension) mimefilt.dll
Gestionnaire de filtre HTML HTML 3.0 ou version antérieure nlhtml.dll
Gestionnaire de filtre de document Microsoft Word, Excel, PowerPoint offfilt.dll
Gestionnaire de filtre de texte brut Fichiers de 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 (dans mimefilt.dll) extrait le texte et les informations de propriété des fichiers avec les extensions .eml, .mht et .mhtml.

Gestionnaire de filtre HTML

Le gestionnaire de filtre HTML (dans nlhtml.dll) extrait le texte et les informations de propriété de la classe « htmlfiles » afin qu’elles puissent être indexées par Recherche Windows. Pour obtenir une description de l’association entre IFilter et le type de fichier, consultez « Recherche de la DLL IFilter pour un fichier » dans Inscription des gestionnaires de filtres.

Vous pouvez utiliser la META fonctionnalité de balise des documents HTML pour transmettre des demandes de gestion spéciales à l’IFilter HTML. META les balises se produisent près du début d’un fichier html dans les HEAD ... /HEAD balises, 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 à des valeurs de jeu de propriétés et d’ID de propriété bien connues (PID) afin que les requêtes sur ces propriétés effectuent une recherche dans le contenu mappé. Quelques exemples sont 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 fichiers, consultez Propriétés définies par le système pour les formats de fichiers personnalisés.

Exemple de propriété Mappé à
meta name="author » content="ruth » Propriété author dans le jeu de propriétés Informations récapitulatives.
meta name="subject » content="Traitement de texte » Propriété subject dans l’ensemble de propriétés Informations récapitulatives.
meta name="keywords » content="fonts, serif » Propriété mot clé dans l’ensemble de propriétés Informations récapitulatives.
meta name="ms.category » content="fiction » Propriété category dans l’ensemble de propriétés Informations récapitulatives du document.

Certaines fonctionnalités de l’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 META NAME="DESCRIPTION"... balise pour indiquer à IFilter d’utiliser la chaîne suivant l’mot clé CONTENT comme résumé du document.

Remarque :
Le processus de filtrage peut générer des extraits pour chaque fichier filtré, qui est par défaut un ensemble de caractères au début du fichier.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Empêcher le filtrage de fichiers individuels Ajoutez une meta name balise au fichier.
  <meta name="robots" content="noindex">
Définition du code de langue d’un fichier (pour s’assurer que le système choisit les analyseurs de mots de langue et les fichiers de mots de bruit appropriés) Ajoutez la balise suivante meta name au fichier, où le champ de contenu spécifie le code de langue approprié (en caractères ou en utilisant la valeur des paramètres régionaux).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Gestionnaire de filtre de document

Le gestionnaire de filtres de document (dans offilt.dll) filtre les fichiers pour certaines extensions de documents dans Microsoft Office. Il s’agit notamment des fichiers avec les extensions .doc, .mdb, .ppt et .xlt, par exemple.

Gestionnaire de filtre de texte brut

Pour les fichiers de texte brut, Recherche Windows utilise le gestionnaire de filtres de texte, qui filtre à la fois 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, Recherche Windows indexe uniquement les propriétés de l’interpréteur de commandes pour le fichier. Toutefois, l’utilisateur peut utiliser les options avancées du panneau de configuration Options d’indexation pour indexer les propriétés ou indexer les propriétés et le contenu du fichier.

capture d’écran montrant la boîte de dialogue Options avancées

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 ne case activée pour la marque d’ordre d’octet Unicode au début du fichier.

Gestionnaire de filtres binaires 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, FileSize et Attributes.

Ressources supplémentaires

Développement de gestionnaires de filtres

À propos des gestionnaires de filtres dans Recherche Windows

Meilleures pratiques pour la création de gestionnaires de filtres dans Recherche Windows

Retour de propriétés à partir d’un gestionnaire de filtre

Implémentation de gestionnaires de filtres dans Recherche Windows

Inscription de gestionnaires de filtres

Test des gestionnaires de filtres