Partager via


Vue d’ensemble de Windows Search

Windows Search est une plateforme de recherche de bureau qui offre des fonctionnalités de recherche instantanée pour les types de fichiers et de données les plus courants et qui permet aux développeurs tiers d’étendre ces fonctionnalités à d’autres types de fichiers et de données.

Cette rubrique est organisée comme suit :

Introduction

Windows Search est un composant standard de Windows 7 et de Windows Vista et est activé par défaut. Windows Search remplace Windows Desktop Search (WDS), qui était disponible en tant que complément pour Windows XP et Windows Server 2003.

Windows Search comprend trois composants :

Service Windows Search

Le service WSS organise les fonctionnalités extraites d’une collection de documents. Le protocole Windows Search permet à un client de communiquer avec un serveur hébergeant un service WSS pour émettre des requêtes et permettre à un administrateur de gérer le serveur d’indexation. Lors du traitement des fichiers, WSS analyse un ensemble de documents, extrait les informations utiles, puis organise les informations extraites afin que les propriétés de ces documents puissent être retournées efficacement en réponse aux requêtes.

Une collection de documents pouvant être interrogés comprend un catalogue, qui constitue l’unité d’organisation de plus haut niveau dans Windows Search. Un catalogue représente un ensemble de documents indexés pouvant être interrogés. Un catalogue se compose d’une table de propriétés. Le texte ou la valeur et l’emplacement (paramètres régionaux) correspondant sont stockés dans les colonnes de la table. Chaque ligne de la table correspond à un document distinct dans l’étendue du catalogue, et chaque colonne de la table correspond à une propriété. Un catalogue peut contenir un index inversé (pour une correspondance rapide des mots) et un cache de propriétés (pour une récupération rapide des valeurs de propriété).

Le processus d’indexation est implémenté en tant que service Windows s’exécutant dans le compte LocalSystem. Il s’exécute toujours pour tous les utilisateurs (même si aucun utilisateur n’est connecté), ce qui permet à Windows Search d’effectuer les opérations suivantes :

  • Gérer un index partagé entre tous les utilisateurs.
  • Gérer des restrictions de sécurité sur l’accès au contenu.
  • Traiter les requêtes distantes à partir d’ordinateurs clients sur le réseau.

Le service Search est conçu pour protéger l’expérience utilisateur et les performances du système lors de l’indexation. Dans les conditions suivantes, le service limite ou suspend l’indexation :

  • Utilisation élevée du processeur par des processus non liés à la recherche.
  • Taux d’E/S système élevé, y compris les lectures et écritures de fichiers, E/S des fichiers d’échange et des caches de fichiers et E/S des fichiers mappés.
  • Faible disponibilité de la mémoire.
  • Faible autonomie de la batterie.
  • Espace disque insuffisant sur le lecteur qui stocke l’index.

Plateforme de développement

La méthode recommandée pour accéder aux API de recherche et créer des applications Windows Search consiste à utiliser une source de données Shell. Une source de données Shell est un composant utilisé pour étendre l’espace de noms Shell et exposer des éléments dans une banque de données. Une banque de données est un référentiel de données. Une banque de données peut être exposée au modèle de programmation Shell en tant que conteneur qui utilise une source de données Shell. Les éléments d’une banque de données peuvent être indexés par le système Windows Search à l’aide d’un gestionnaire de protocole.

Par exemple, ISearchFolderItemFactory est un composant qui peut créer des instances de la source de données du dossier de recherche, qui est une sorte de source de données « virtuelle » fournie par le Shell qui peut exécuter des requêtes sur d’autres sources de données dans l’espace de noms Shell et énumérer les résultats. Il peut le faire soit en utilisant l’indexeur, soit en énumérant et en inspectant manuellement les éléments dans les étendues spécifiées. Cette interface vous permet de configurer les paramètres de la recherche à l’aide de méthodes qui créent et modifient des dossiers de recherche. Si les méthodes de cette interface ne sont pas appelées, les valeurs par défaut sont utilisées à la place.

Il est préférable d’accéder indirectement à la fonctionnalité Windows Search par le biais du modèle de données Shell, car cela permet d’accéder à l’intégralité des fonctionnalités du Shell au niveau du modèle de données Shell. Par exemple, vous pouvez définir l’étendue d’une recherche sur une bibliothèque (qui est une fonctionnalité disponible dans Windows 7 et versions ultérieures) pour utiliser les dossiers de la bibliothèque comme étendue de la requête. Windows Search agrège ensuite les résultats de la recherche à partir de ces emplacements s’ils se trouvent dans des index différents (si les dossiers se trouvent sur des ordinateurs différents). La couche de données Shell crée également une vue plus complète des propriétés des éléments, synthétisant certaines valeurs de propriété. Elle permet également d’accéder aux fonctionnalités de recherche pour les magasins de données qui ne sont pas indexés par Windows Search. Par exemple, vous pouvez rechercher un dispositif de stockage USB (Universal Serial Bus), un appareil mobile utilisant le protocole MTP ou un serveur FTP (File Transfer Protocol) par le biais des sources de données Shell qui fournissent l’accès à ces systèmes de stockage. Cela permet de garantir une meilleure expérience utilisateur.

Windows Search dispose d’un cache de valeurs de propriété qui est utilisé dans l’implémentation du service Windows Search (WSS). Ces valeurs de propriété peuvent être interrogées par programmation à l’aide du fournisseur OLE DB Windows Search ou via ISearchFolderItemFactory, qui représente des éléments dans les résultats de la recherche et les vues basées sur des requêtes. Ensuite, Windows Search collecte et stocke les propriétés émises par les gestionnaires de filtres ou les gestionnaires de propriétés lorsqu’un élément tel qu’un document Word est indexé. Ce magasin est abandonné et reconstruit lorsque l’index est reconstruit.

Les développeurs tiers peuvent créer des applications qui consomment les données dans l’index au moyen de requêtes programmatiques et étendre les données à indexer par Windows Search à des types de fichiers et d’éléments personnalisés. Si vous souhaitez afficher les résultats de la requête dans l’Explorateur Windows, vous devez implémenter une source de données Shell avant de pouvoir créer un gestionnaire de protocole pour étendre l’index. Toutefois, si toutes les requêtes sont programmatiques (par exemple, via OLE DB) et interprétées par le code de l’application plutôt que par le Shell, il est toujours préférable d’utiliser un espace de noms Shell (mais ce n’est pas obligatoire).

Un gestionnaire de protocole est requis pour que Windows obtienne des informations sur le contenu des fichiers, notamment les éléments des bases de données ou les types de fichiers personnalisés. Bien que Windows Search puisse indexer le nom et les propriétés du fichier, Windows ne dispose d’aucune information sur le contenu du fichier. Par conséquent, ces éléments ne peuvent pas être indexés ou exposés dans l’interpréteur de commandes Windows. En implémentant un gestionnaire de protocole personnalisé, vous pouvez exposer ces éléments. Pour obtenir la liste des gestionnaires identifiés par le scénario de développement que vous essayez d’obtenir, consultez « Vue d’ensemble des gestionnaires » dans Windows Search en tant que plateforme de développement.

Remarque

Une source de données Shell est parfois appelée extension d’espace de noms Shell. Un gestionnaire est parfois appelé extension Shell ou gestionnaire d’extensions Shell.

 

Interface utilisateur

Dans Windows Vista et versions ultérieures, Windows Search est intégré à toutes les fenêtres de l’Explorateur Windows pour offrir un accès instantané à la recherche. Cela permet aux utilisateurs de rechercher rapidement des fichiers et des éléments par nom de fichier, propriétés et contenu en texte intégral. Il est également possible de filtrer les résultats pour affiner la recherche. Voici quelques fonctionnalités supplémentaires de Windows Search :

  • Une zone de recherche instantanée dans chaque fenêtre permet de filtrer instantanément tous les éléments actuellement affichés. Des zones de recherche instantanée apparaissent dans le menu Démarrer pour rechercher des programmes ou des fichiers, et dans le coin supérieur droit de toutes les fenêtres de l’Explorateur Windows pour filtrer les résultats affichés. La recherche instantanée est également intégrée à d’autres fonctionnalités Windows, notamment le Lecteur multimédia Windows, pour rechercher des fichiers associés.
  • Les documents peuvent être étiquetés avec des mots clés pour les regrouper en fonction de critères personnalisés définis par l’utilisateur. Les étiquettes sont des éléments de métadonnées attribués par l’utilisateur ou les applications pour faciliter la recherche de fichiers sur la base de mots clés qui peuvent ne pas figurer dans le nom ou le contenu de l’élément. Par exemple, vous pouvez étiqueter un ensemble d’images « Vacances en Arizona 2009 » pour pouvoir le récupérer plus rapidement par la suite en recherchant simplement l’un des mots inclus.
  • Les en-têtes de colonne améliorés dans les vues de l’Explorateur Windows permettent de trier et de regrouper des documents de différentes façons. Par exemple, vous pouvez trier des fichiers selon leur nom, leur date de modification, leur type, leur taille et leurs étiquettes. Vous pouvez également regrouper des documents en fonction de l’une de ces propriétés et filtrer (masquer ou afficher) chaque groupe comme vous le souhaitez.
  • Vous pouvez empiler des documents selon leur nom, leur date de modification, leur type, leur taille et leurs étiquettes. Les piles incluent tous les documents qui ont la propriété spécifiée et qui se trouvent dans n’importe quel sous-dossier du dossier sélectionné.
  • Vous pouvez enregistrer les recherches pour les récupérer ultérieurement. Pour cela, cliquez sur le bouton Enregistrer la recherche dans le volet de recherche de l’Explorateur Windows. Lorsque la recherche enregistrée est ouverte, les résultats sont remplis dynamiquement en fonction des critères d’origine. Pour obtenir des instructions, consultez Enregistrer les résultats de la recherche.
  • Les gestionnaires d’aperçus et de miniatures permettent aux utilisateurs d’afficher un aperçu des documents dans l’Explorateur Windows sans avoir à ouvrir l’application dans laquelle ils ont été créés.

Prérequis techniques

Avant de commencer à lire la documentation du SDK Windows Search, vous devez avoir une compréhension fondamentale des concepts suivants :

  • Comment implémenter une source de données Shell.
  • Comment implémenter un gestionnaire.
  • Comment travailler en code natif.

Une source de données Shell est un composant utilisé pour étendre l’espace de noms Shell et exposer des éléments dans une banque de données. Par le passé, la source de données Shell était appelée « extension d’espace de noms Shell ». Un gestionnaire est un objet COM (Component Object Model) qui fournit des fonctionnalités à un élément Shell. Pour obtenir la liste des gestionnaires identifiés par le scénario de développement que vous essayez d’obtenir, consultez « Vue d’ensemble des gestionnaires » dans Windows Search en tant que plateforme de développement.

Pour plus d’informations sur l’assembly d’interopérabilité du SDK Windows Search qui permet d’utiliser des objets COM exposés par Windows Search et d’autres programmes utilisant du code managé, consultez Utilisation de code managé avec des données Shell et Windows Search. Toutefois, notez que les filtres, gestionnaires de propriétés et gestionnaires de protocoles doivent être écrits en code natif. Cela est dû à des problèmes potentiels liés au contrôle de version du Common Language Runtime (CLR) avec le processus dans lequel plusieurs compléments s’exécutent. Nous recommandons aux développeurs qui découvrent C++ de visiter le Centre de développement Visual C++ et de consulter Prise en main du développement dans Windows.

Téléchargement et contenu du SDK

En plus de satisfaire aux prérequis techniques répertoriés, vous devez télécharger le SDK Windows pour obtenir les bibliothèques Windows Search. Les exemples de code Windows Search contiennent des exemples de code utiles et un assembly d’interopérabilité pour le développement avec du code managé.

Documentation du SDK Windows Search

Le contenu de la documentation du SDK Windows Search est le suivant :

Windows Search remplace Windows Desktop Search (WDS), qui était disponible en tant que complément pour Windows XP et Windows Server 2003. WDS remplace le service d’indexation hérité des versions précédentes de Windows, améliorant ainsi les performances, la convivialité et l’extensibilité. La nouvelle plateforme de développement prend en charge les exigences qui produisent un système plus sécurisé et plus stable. Bien que la nouvelle plateforme d’interrogation ne soit pas compatible avec Microsoft Windows Desktop Search (WDS) 2.x, les filtres et gestionnaires de protocoles écrits pour des versions précédentes de WDS peuvent être mis à jour pour fonctionner avec Windows Search. Windows Search prend également en charge un nouveau système de propriétés. Pour plus d’informations sur les filtres, gestionnaires de propriétés et gestionnaires de protocoles, consultez Extension de l’index.

Intégré à Windows Vista et versions ultérieures, Windows Search est disponible en tant que mise à jour redistribuable pour WDS 2.x afin de prendre en charge les systèmes d’exploitation suivants :

  • Versions 32 bits de Windows XP Service Pack 2 (SP2).
  • Toutes les versions x64 de Windows XP.
  • Windows Server 2003 Service Pack 1 (SP1) ou version ultérieure.
  • Toutes les versions x64 de Windows Server 2003.

Windows Search doit être installé sur les systèmes exécutant ces systèmes d’exploitation afin qu’ils puissent exécuter des applications écrites pour Windows Search.

Ressources complémentaires

Windows Search en tant que plateforme de développement

Langues prises en charge par Windows Search

Utilisation de code managé avec Shell Data et Windows Search