Share via


Gestion des racines de recherche

Le Gestionnaire d’étendues d’analyse (CSM) vous permet d’ajouter et de supprimer des racines de recherche pour vos magasins de données vers et à partir de l’étendue d’analyse Recherche Windows.

Cette rubrique traite des sujets suivants :

 

À propos des racines de la recherche

Une racine de recherche définit la base d’un espace de noms Shell où des étendues spécifiques peuvent être incluses ou exclues. Il s’agit généralement du conteneur de niveau le plus élevé d’un protocole qui peut être énuméré. Il ne spécifie pas quelles parties de ce magasin doivent ou ne doivent pas être indexées ; il signale simplement qu’un magasin de contenu existe et qu’il est associé à un gestionnaire de protocole inscrit. La syntaxe permettant d’identifier une URL racine de recherche inclut le protocole, l’identificateur de sécurité du magasin ou de l’utilisateur, le chemin d’accès et éventuellement un élément spécifique (comme un fichier). Les exemples suivants illustrent deux formes de la syntaxe d’une racine de recherche.

<protocol>://<store or SID>\<path>\[item]
or
<protocol>://<store or SID>/<path>/[item]

Le <segment de protocole> doit être suivi de deux (2) barres obliques ('/'), sauf s’il s’agit du fichier : protocole, qui nécessite trois barres obliques (file:///). Le <site ou le segment SID> représente un magasin de contenu ou un identificateur de sécurité utilisateur si la racine de recherche est destinée à être spécifique à l’utilisateur. Le <segment de chemin d’accès> est un ensemble de conteneurs, tels que des répertoires ou des dossiers, et peut inclure le caractère générique « * ». Le <segment d’élément> est facultatif et peut également inclure le caractère générique « * ». Si vous n’incluez pas d’élément, veillez à terminer votre segment de chemin d’accès avec une barre oblique, sinon l’indexeur suppose que le dernier sous-conteneur est un élément.

Par exemple, supposons que vous avez implémenté un gestionnaire de protocole (myPH) pour gérer les fichiers de type *.myext pour une application personnalisée. Tous ces fichiers se trouvent dans le dossier WorkteamA\ProjectFiles sur un ordinateur local. La racine de recherche pour qui peut ressembler à ceci :

  • myPH:///C:\WorkteamA\ProjectFiles\

Supposons que vous prévoyez d’inclure tous les fichiers .myext, mais rien d’autre de ce conteneur dans l’index. La racine de recherche pour qui peut ressembler à ceci :

  • myPH:///C:\WorkteamA\ProjectFiles\*.myext.

Les modèles génériques définissent les URL à l’aide du caractère générique « * » et sont considérés comme un modèle plutôt qu’une URL, mais la terminologie est souvent utilisée de manière interchangeable. Par exemple, file:///C:\ProjectA\*\data\ correspondrait aux URL suivantes :

  • C:\ProjectA\version1\data\
  • C:\ProjectA\version2\data\

Mais ce modèle ne correspond pas à cette URL :

  • C:\ProjectA\version1\temp\data\

Vous devez créer de nouvelles racines de recherche pour les conteneurs qui ne sont pas déjà dans l’étendue d’analyse de l’indexeur. Si le chemin C:\ParentScope est déjà inclus dans l’étendue de l’analyse, vous n’avez pas besoin d’ajouter une nouvelle racine de recherche pour C:\ParentScope\ChildScope, sauf si vous savez que l’étendue enfant a été précédemment exclue.

L’interface utilisateur permettant de définir les options de recherche Windows affiche les racines de la recherche pour les utilisateurs afin qu’ils puissent affiner les règles d’étendue de leurs recherches. Dans le cadre du processus d’installation de votre gestionnaire de protocole personnalisé, conteneur et/ou application, vous pouvez définir une étendue d’analyse par défaut, avec des règles d’inclusion et d’exclusion. Ces règles sont présentées aux utilisateurs finaux en tant qu’emplacements. Les utilisateurs peuvent naviguer dans les sous-répertoires de la racine de votre recherche prédéfinie et sélectionner ceux qu’ils souhaitent inclure dans les recherches ou effacer ceux qu’ils veulent exclure.

 

Avant de commencer

Avant de pouvoir utiliser l’une des interfaces CSM (Crawl Scope Manager), vous devez effectuer les étapes préalables suivantes :

  1. Créez l’objet CrawlSearchManager et obtenez son interface ISearchManager .
  2. Appelez ISearchManager::GetCatalog pour « SystemIndex » pour obtenir une instance d’une interface ISearchCatalogManager.
  3. Appelez ISearchCatalogManager::GetCrawlScopeManager pour obtenir une instance de l’interface ISearchCrawlScopeManager.

Après avoir apporté des modifications au Gestionnaire d’étendues d’analyse (CSM), vous devez appeler ISearchCrawlScopeManager::SaveAll. Cette méthode ne prend aucun paramètre et retourne S_OK en cas de réussite.

 

Windows 7 : Nouvelle API Gestionnaire d’étendues d’analyse

Dans Windows 7 et versions ultérieures, ISearchCrawlScopeManager2 étend les fonctionnalités de l’interface ISearchCrawlScopeManager . La méthode ISearchCrawlScopeManager2::GetVersion obtient la version du Gestionnaire d’étendue d’analyse (CSM), qui informe les clients si l’état du CSM a changé. ISearchCrawlScopeManager2::GetVersion n’entraîne pas d’appel inter-processus. Si la fonction réussit, le pointeur retourné reste valide jusqu’à ce que le client appelle UnmapViewOfFile sur le pointeur et CloseHandle sur le handle retourné.

 

Ajout de racines à l’étendue d’analyse

ISearchCrawlScopeManager indique au moteur de recherche les conteneurs à analyser et/ou watch, et les éléments sous ces conteneurs à inclure ou à exclure. Pour ajouter une nouvelle racine de recherche, instanciez un objet ISearchRoot , définissez les attributs racine, puis appelez ISearchCrawlScopeManager::AddRoot et passez-lui un pointeur vers votre objet ISearchRoot . L’URL racine de recherche prend la même forme que la racine de recherche décrite précédemment.

Le tableau suivant décrit les méthodes put pertinentes pour ISearchRoot ; les autres méthodes put de l’interface ne sont pas utilisées actuellement par Recherche Windows. Nous vous recommandons d’inclure les identificateurs de sécurité (SID) des utilisateurs dans toutes les racines pour une meilleure sécurité. Les racines par utilisateur sont plus sécurisées, car les requêtes sont exécutées dans un processus par utilisateur, ce qui garantit qu’un utilisateur ne peut pas voir les éléments indexés à partir de la boîte de réception d’un autre utilisateur, par exemple.

Méthode Description
put_ProvidesNotifications Définissez la valeur TRUE si un gestionnaire de protocole ou une autre application informe le moteur de recherche des modifications apportées aux URL sous la racine de recherche. La notification indique que les URL doivent être réindexés.
put_RootURL Définit l’URL racine de la recherche actuelle. L’URL prend la forme racine de recherche décrite précédemment.

 

 

Par défaut, l’indexeur n’analyse pas d’étendue lorsque vous ajoutez une racine de recherche. Vous devez également ajouter une règle include pour la racine. Si vous souhaitez ajouter une racine spécifique à l’utilisateur pour une application, cette application doit ajouter les racines appropriées pour les nouveaux utilisateurs au démarrage de l’application.

Pour ajouter les racines appropriées pour les nouveaux utilisateurs :

  1. Obtenez le SID de l’utilisateur.
  2. Énumérez toutes les racines pour case activée si une racine existe pour ce SID.
  3. Ajoutez une nouvelle racine, à l’aide du SID, si nécessaire.

 

Suppression de racines de l’étendue d’analyse

Vous pouvez utiliser ISearchCrawlScopeManager pour supprimer une racine de l’étendue d’analyse lorsque vous ne souhaitez plus que cette URL soit indexée. La suppression d’une racine supprime également toutes les règles d’étendue pour cette URL. Par exemple, supposons que vous souhaitiez désinstaller un magasin de contenu et/ou son gestionnaire de protocole d’un système. Vous pouvez désinstaller l’application, supprimer toutes les données, puis supprimer la racine de recherche de l’étendue d’analyse, et le Gestionnaire d’étendues d’analyse supprime la racine et toutes les règles d’étendue associées à la racine.

Pour supprimer une racine de recherche existante, appelez ISearchCrawlScopeManager::RemoveRoot avec la racine de recherche que vous souhaitez supprimer. L’URL racine de recherche prend la même forme que la racine de recherche décrite précédemment. Cette méthode retourne S_FALSE si la racine est introuvable et un code d’erreur s’il y a eu une erreur lors de la suppression d’une racine trouvée.

La suppression d’une racine de recherche supprime également l’URL de l’interface utilisateur pour les options de recherche Windows, de sorte que les utilisateurs peuvent ne pas être en mesure de rajouter ce conteneur ou cet emplacement à l’aide de l’interface utilisateur. Il est également possible de supprimer tous les remplacements de jeu d’utilisateurs d’une racine de recherche et de revenir aux règles d’étendue et de racine de recherche d’origine. Pour plus d’informations, consultez Gestion des règles d’étendue.

Notes

Sur Windows Vista, si les utilisateurs sont supprimés via des profils utilisateur dans Panneau de configuration, CSM supprime toutes les règles et racines avec leur SID et supprime leurs éléments indexés du catalogue. Sur Windows XP, vous devez supprimer manuellement les racines et les règles des utilisateurs.

 

 

Énumération des racines dans l’étendue de l’analyse

Le CSM énumère les racines de recherche à l’aide d’une interface d’énumérateur de style COM standard, IEnumSearchRoots. Vous pouvez utiliser cette interface pour énumérer les racines de recherche à plusieurs fins. Par exemple, vous pouvez afficher l’ensemble de l’étendue de l’analyse dans une interface utilisateur, ou découvrir si une racine particulière ou l’enfant d’une racine se trouve déjà dans l’étendue de l’analyse.

 

Informations de référence

ISearchCrawlScopeManager

ISearchRoot

IEnumSearchRoots

Conceptuel

Utilisation du Gestionnaire d’étendues d’analyse

Gestion des règles d’étendue