Utilisation du Gestionnaire de catalogues

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

  • Accès à d’autres interfaces : récupération d’autres interfaces liées à la recherche requises par le Gestionnaire d’étendues d’analyse, les notifications de modification de données et l’interface ISearchQueryHelper .
  • Contenu du catalogue : s’assurer que les 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.
  • Catalogue status : obtention d’informations sur le catalogue, y compris l’status, la taille et l’état de l’activité actuelle.

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 Description
GetQueryHelper Obtient une instance de l’interface ISearchQueryHelper pour le catalogue actuel, pour vous permettre de créer facilement des requêtes.
GetCrawlScopeManager Obtient une instance d’ISearchCrawlScopeManager pour ce catalogue de recherche, pour permettre aux développeurs de modifier l’étendue d’analyse de l’indexeur recherche Windows.
GetItemsChangedSink Obtient une instance de l’interface ISearchItemsChangedSink, que les applications clientes utilisent pour informer l’indexeur des modifications lorsque le client souhaite l’indexation status informations 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 status informations (notifications gérées par l’indexeur). Pour plus d’informations, consultez Notification de l’index des modifications .

Gestion du contenu du catalogue

La gestion du catalogue implique deux tâches principales : réindexer tout ou partie des URL de l’étendue d’analyse de l’indexeur et réinitialiser l’ensemble 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’ensemble du catalogue est reconstruit et toutes les URL de l’étendue d’analyse sont réindexées. Ce processus peut prendre beaucoup de temps et ne doit être utilisé qu’en dernier recours pour résoudre des problèmes tels qu’un index éventuellement endommagé.

Lorsque vous installez une nouvelle application, un gestionnaire de protocole ou un nouveau filtre, l’application d’installation doit ajouter son répertoire ou sa racine à l’étendue d’analyse pour s’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 des options de recherche Windows ou du Gestionnaire d’étendues 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 Description
ISearchCatalogManager::Réindexer Réindexe toutes les URL du catalogue. Les anciennes informations restent jusqu’à ce qu’elles soient 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:\Nom_dossier\Nom_sous-dossier\). Cela est utile pour tout récapituler dans un répertoire particulier ou avec une extension particulière, comme lorsqu’une application est installée.
Hiérarchisation DESURLs Demande à l’indexeur de hiérarchiser les éléments d’indexation avec des URL qui correspondent à un modèle spécifié plutôt que d’effectuer 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 régénérant les bases de données et en exécutant un index complet de toutes les URL dans l’étendue de l’analyse. Ce processus peut prendre beaucoup de temps et ne doit être utilisé qu’en dernier recours pour résoudre des problèmes tels qu’un index éventuellement endommagé.

Important

En raison du ralentissement de l’indexation que ces méthodes peuvent provoquer, elles doivent être utilisées avec soin lorsque vous essayez d’identifier des problèmes d’indexation ou de catalogue. Tout d’abord, assurez-vous que vos racines et règles d’étendue de recherche sont ajoutées dans le Gestionnaire d’étendues 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é que celles-ci sont correctes, essayez d’abord ReindexSearchRoot et réindexer en dernier. Si aucune de ces options ne fonctionne, essayez 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 les status du catalogue pour les applications qui souhaitent personnaliser la façon dont le catalogue est géré (par exemple, une application de surveillance personnalisée « État du catalogue »). Toutefois, le Gestionnaire de catalogue n’est généralement pas requis pour la plupart des scénarios de développement liés à la recherche. Les utilisations courantes sont pour 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 les status de catalogue.

Méthode Description
URLBeingIndexed Obtient l’URL en cours d’indexation. 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 pour une application de notification qui devait case activée 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 du plHighPriorityQueue sont indexés en premier.
GetCatalogStatus Obtient la status du catalogue et retourne une valeur d’énumération qui donne la status actuelle. 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 : l’indexeur effectue une analyse incrémentielle.
  • Traitement des notifications : l’indexeur traite les notifications.
  • Arrêt : l’indexeur s’arrête.
get_Name Obtient le nom du catalogue actif 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 diacritiques sont des marques d’accentuation ajoutées aux lettres pour signifier la signification ou la prononciation d’un mot. Cette propriété détermine si le catalogue est sensible aux diacritiques et est importante 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 traiterait « resume » et « resumeé » 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 le temps d’attente d’une transaction de données entre l’indexeur et un gestionnaire ou un filtre de protocole, comme représenté dans une structure de TIMEOUT_INFO . Si ce délai s’est écoulé, le processus du démon de filtre est terminé pour éviter l’interblocage et d’autres problèmes de ressources.

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

Méthode Description
get_DiacriticSensitivity /
put_DiacriticSensitivity
TRUE si le catalogue doit différencier les mots avec des diacritiques. FALSE si le catalogue doit ignorer les 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
Durée, en secondes, pendant laquelle 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 de ce paramètre trop faible peut entraîner l’analyse de certains sites.
get_DataTimeout /
put_DataTimeout
Durée, en secondes, pendant laquelle l’indexeur doit attendre une transaction de données.

Exécution en mode avec élévation de privilèges

Tous les appels de méthode qui mettent à jour systemIndex nécessitent l’exécution de votre application avec élévation de privilèges. Dans le cas contraire, votre application échouera 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’étendues d’analyse