Utilisation du gestionnaire de catalogue

Les interfaces ISearchCatalogManager et ISearchCatalogManager2 fournissent des méthodes pour gérer un catalogue de recherche, telles que la réindexation ou la définition de délais d’attente. Bien que Windows Search n’utilise actuellement qu’un seul catalogue, cette interface a été conçue pour vous permettre de mieux contrôler la gestion de plusieurs catalogues indépendamment. L’interface gère le catalogue de manières suivantes :

  • Accès à d’autres interfaces : récupération d’autres interfaces liées à la recherche requises par le Gestionnaire d’étendue d’analyse, les notifications de modification de données et l’interface ISearchQueryHelper .
  • Contenu du catalogue : s’assurer que de nouvelles données sont indexées et que d’autres applications et composants fonctionnent correctement en forçant une réindexation de tout ou partie du catalogue ou en réinitialisant l’ensemble du catalogue.
  • Propriétés du catalogue : définition de propriétés qui déterminent la façon dont le catalogue gère les délais d’attente lors de la connexion aux gestionnaires de protocole et la façon dont les marques diacritiques sont traitées dans les recherches.
  • État du catalogue : obtention d’informations sur le catalogue, notamment l’état, la taille et l’état d’activité actuel.

Cette rubrique est organisée comme suit :

Certaines interfaces utiles dans la plateforme Recherche Windows nécessitent une instance du Gestionnaire de catalogue avant de pouvoir être utilisées. Pour créer un gestionnaire de catalogue pour un catalogue spécifié, appelez la méthode ISearchManager ::GetCatalog . Les méthodes du Gestionnaire de catalogue peuvent ensuite être utilisées pour instancier et retourner des interfaces basées sur le catalogue spécifié.

Méthode Descriptif
GetQueryHelper Obtient une instance de l’interface ISearchQueryHelper pour le catalogue actuel pour vous permettre de générer facilement des requêtes.
GetCrawlScopeManager Obtient une instance de ISearchCrawlScopeManager pour ce catalogue de recherche, pour permettre aux développeurs de modifier l’étendue d’analyse de l’indexeur de recherche Windows.
GetItemsChangedSink Obtient une instance de l’interface ISearchItemsChangedSink , que les applications clientes utilisent pour notifier l’indexeur des modifications lorsque le client souhaite indexer des informations d’état sur l’élément pour prendre en charge les notifications gérées par le fournisseur. Pour plus d’informations, consultez Notification de l’index des modifications .
GetPersistentItemsChangedSink Obtient une instance de ISearchPersistentItemsChangedSink, que les applications clientes utilisent pour notifier l’indexeur des modifications lorsque le client ne souhaite pas indexer les informations d’état (notifications gérées par l’indexeur). Pour plus d’informations, consultez Notification de l’index des modifications .

Gestion du contenu du catalogue

Il existe deux tâches principales impliquées dans la gestion du catalogue : réindexer toutes ou certaines URL de l’étendue d’analyse de l’indexeur et réinitialiser l’intégralité du catalogue sous-jacent. Lorsque vous réindexez des URL, les anciennes données restent dans le catalogue jusqu’à ce qu’elles soient remplacées par de nouvelles données. Lorsque vous réinitialisez le catalogue, l’intégralité du catalogue est reconstruite et toutes les URL de l’étendue d’analyse sont réindexées. Ce processus peut prendre beaucoup de temps et doit être utilisé uniquement comme dernier recours pour résoudre les problèmes tels qu’un index potentiellement endommagé.

Lorsque vous installez une nouvelle application, un gestionnaire de protocole ou un filtre, l’application d’installation doit ajouter son répertoire ou sa racine à l’étendue d’analyse pour vous assurer que l’indexeur inclut l’emplacement des données de cette application. Si les données n’apparaissent pas dans le catalogue une fois que l’indexeur a analysé son étendue d’analyse, vous devez d’abord vous assurer que l’emplacement des données est inclus dans l’étendue d’analyse. Vous pouvez l’ajouter à l’aide de l’interface utilisateur pour les options recherche Windows ou le Gestionnaire d’étendue d’analyse. Si l’emplacement semble se trouver dans l’étendue de l’analyse, vous pouvez forcer manuellement une réindexation de toutes les URL de l’étendue d’analyse de l’indexeur ou d’un sous-ensemble, à l’aide des méthodes suivantes de l’interface ISearchCatalogManager .

Méthode de réindexation Descriptif
ISearchCatalogManager ::Reindex Réindexe toutes les URL du catalogue. Les anciennes informations resteront jusqu’à ce qu’elles ne sont pas remplacées par de nouvelles informations.
ISearchCatalogManager ::ReindexMatchingURLs
ISearchCatalogManager ::ReindexSearchRoot
Réindexe les URL qui correspondent au modèle ou commencent à une racine particulière (par exemple, file:///C :\Foldername\Subfoldername\). Cela est utile pour recrawling tout dans un répertoire particulier ou avec une extension particulière, comme lorsqu’une application est installée.
HiérarchisationURLs Indique à l’indexeur de hiérarchiser les éléments d’indexation avec des URL qui correspondent à un modèle spécifié par rapport à l’exécution d’autres tâches d’indexation.

Réinitialisation de l’index. Vous pouvez réinitialiser l’index entier avec un appel à ISearchCatalogManager ::Reset. Cela réinitialise le catalogue sous-jacent en regénéré les bases de données et en effectuant un index complet de toutes les URL de l’étendue d’analyse. Ce processus peut prendre beaucoup de temps et doit être utilisé uniquement comme dernier recours pour résoudre les problèmes tels qu’un index potentiellement endommagé.

Important

En raison du ralentissement de l’indexation que ces méthodes peuvent entraîner, elles doivent être utilisées avec soin lorsque vous essayez d’identifier les problèmes d’indexation ou de catalogue. Tout d’abord, vérifiez que vos racines de recherche et vos règles d’étendue sont ajoutées dans le Gestionnaire d’étendue d’analyse, puis assurez-vous que le bit FANCI (Attribut de fichier non indexé) est correctement défini pour les fichiers et dossiers. Si vous avez confirmé qu’ils sont corrects, essayez d’abord ReindexSearchRoot et Reindex last. Si aucun de ces travaux n’est fait, essayez de réinitialiser en dernier recours.

Pour plus d’informations, consultez Notification de l’index des modifications et interrogation de l’index avec ISearchQueryHelper

Gestion de l’état du catalogue

Le Gestionnaire de catalogue peut être utilisé pour obtenir l’état du catalogue pour les applications qui souhaitent personnaliser la façon dont le catalogue est géré (par exemple, une application de surveillance « État du catalogue » personnalisée). Toutefois, le Gestionnaire de catalogue n’est généralement pas nécessaire pour la plupart des scénarios de développement liés à la recherche. Les utilisations courantes concernent une application de surveillance « État du catalogue » ou une application de style Panneau de configuration.

Le tableau suivant décrit les méthodes d’ISearchCatalogManager utilisées pour gérer l’état du catalogue.

Méthode Descriptif
URLBeingIndexed Obtient l’URL actuellement indexée. Cette méthode serait utile si vous essayiez d’identifier si l’indexeur était « bloqué » sur un élément.
NumberOfItems Obtient le nombre d’éléments dans le catalogue.
NumberOfItemsToIndex Récupère les informations suivantes sur les éléments à indexer :
  • plIncrementalCount : nombre d’éléments à indexer dans l’index incrémentiel suivant
  • plNotificationQueue : nombre d’éléments dans la file d’attente de notification. Ces informations seraient utiles à une application de notification qui devait vérifier si l’indexeur reçoit les notifications envoyées par l’application.
  • plHighPriorityQueue : nombre d’éléments dans la file d’attente à priorité élevée. Les éléments de plHighPriorityQueue sont indexés en premier.
GetCatalogStatus Obtient l’état du catalogue et retourne une valeur d’énumération qui donne l’état actuel. Voici les états de catalogue possibles :
  • Inactif : aucune indexation n’est nécessaire.
  • Suspendu : l’indexation est suspendue (en raison d’une faible batterie ou d’une utilisation élevée du processeur, par exemple).
  • Récupération : l’indexation est en cours de récupération.
  • Analyse complète : l’indexeur effectue une analyse complète de l’étendue de l’analyse.
  • Analyse incrémentielle : Indexeur effectue une analyse incrémentielle.
  • Traitement des notifications : l’indexeur traite les notifications.
  • Arrêt : Indexer arrête.
get_Name Obtient le nom du catalogue actuel spécifié dans la méthode ISearchManager ::GetCatalog . Actuellement, le seul catalogue pris en charge est SystemIndex.

Gestion des propriétés du catalogue

Il existe trois propriétés de catalogue que vous pouvez gérer avec le Gestionnaire de catalogue :

  • Sensibilité diacritique. Les signes diacritiques sont des marques d’accentuation ajoutées aux lettres pour signer la signification ou la prononciation d’un mot. Cette propriété détermine si le catalogue est sensible aux signes diacritiques et est important lorsque vous ou vos utilisateurs recherchez et indexez du texte dans plusieurs langues. Par exemple, avec cette propriété définie sur FALSE, le catalogue traite « resume » et « résumé » comme s’il s’agissait du même mot.
  • Délais d’expiration de connexion. Cette propriété représente le temps d’attente d’une réponse de connexion à partir d’un serveur ou d’un magasin de données, comme représenté dans une structure de TIMEOUT_INFO . Vous pouvez utiliser cette propriété pour affiner Windows Search.
  • Délais d’expiration des données Cette propriété représente la durée d’attente d’une transaction de données entre l’indexeur et un gestionnaire de protocole ou un filtre, comme représenté dans une structure TIMEOUT_INFO . Si ce temps s’est écoulé, le processus du démon de filtre est arrêté pour empêcher l’interblocage et d’autres problèmes de ressources.

Les deux dernières propriétés sont destinées principalement à une utilisation future. Chacune de ces propriétés a get et put méthodes.

Méthode Descriptif
get_DiacriticSensitivity /
put_DiacriticSensitivity
TRUE si le catalogue doit différencier les mots avec des signes diacritiques. FALSE si le catalogue doit ignorer les signes diacritiques. La modification de cette propriété nécessite la reconstruction de l’index, car les clés de l’index peuvent devenir non valides.
get_ConnectTimeout /
put_ConnectTimeout
Temps, en secondes, pendant lequel l’indexeur doit attendre une réponse de connexion à partir d’un serveur ou d’un magasin de données. La définition de cette valeur trop élevée peut entraîner des retards si de nombreux sites ne répondent pas. La définition trop faible peut entraîner l’analyse de certains sites.
get_DataTimeout /
put_DataTimeout
Temps, en secondes, que l’indexeur doit attendre pour une transaction de données.

Exécution en mode privilégié

Les appels de méthode qui mettent à jour SystemIndex nécessitent que votre application soit exécutée avec élévation de privilèges. Sinon, votre application échoue avec une erreur Accès refusé.

Gestion de l’index

Interfaces pour la gestion de l’index

Utilisation du Gestionnaire de recherche

Utilisation du Gestionnaire d’étendue d’analyse