Gestionnaires de protocole de la recherche de contenu d'entreprise
Les gestionnaires de protocole étendent les fonctionnalités de recherche en rendant de nouvelles sources de contenu disponibles pour Recherche de contenu d'entreprise dans Microsoft Office SharePoint Server 2007. Cette rubrique fournit une vue d'ensemble des gestionnaires de protocole et de la façon dont ils s'intègrent dans l'architecture Recherche de contenu d'entreprise. L'utilisation des interfaces de gestionnaire de protocole pour implémenter un gestionnaire de protocole chargé de l'analyse des sources de contenu personnalisées y est en outre présentée.
Vue d'ensemble du système d'indexation de la recherche de contenu d'entreprise
Le système d'indexation Recherche de contenu d'entreprise est constitué de plusieurs composants qui sont décrits dans la liste suivante.
Moteur d'index Gère le processus d'analyse du contenu à l'aide des sources de contenu et des règles d'analyse configurées pour le service de recherche. Le moteur d'index gère une file d'attente des URL d'analyse, en passant les URL d'analyse au démon du filtre pendant le processus d'analyse du contenu. La file d'attente des URL d'analyse est initialement remplie avec les adresses de démarrage des sources de contenu.
Sources de contenu Spécifie quel contenu à analyser.
Règles d'analyse Spécifie quel contenu à exclure de l'analyse, ainsi que les informations d'identification à utiliser pour l'analyse.
Démon du filtre Traite les demandes d'URL d'analyse à partir du moteur d'index en déterminant le gestionnaire de protocole approprié à utiliser. À l'aide du gestionnaire de protocole, le démon du filtre récupère le contenu en extrayant et en analysant le texte et les propriétés, puis appelle l'IFilter approprié si nécessaire.
Gestionnaires de protocole Ouvre des sources de contenu dans leur protocole natif, puis expose les documents et autres éléments à filtrer.
IFilters Ouvre des documents et d'autres éléments de sources de contenu dans leur format natif et les filtre en blocs de texte et en propriétés. L'implémentation IFilter peut faire partie du composant Gestionnaire de protocole ou être un composant séparé.
Vue d'ensemble des gestionnaires de protocole
Les gestionnaires de protocole sont des objets COM à threads libres qui implémentent l'interface ISearchProtocol.
Les gestionnaires de protocole sont enregistrés sur le serveur d'index au niveau HKLM\Software\Microsoft\OfficeServer\12.0\Search\Setup\ProtocolHandlers.
Schéma d'URL
Le format de schéma d'URL d'un gestionnaire de protocole est scheme://hostname/path.extension.
Le schéma d'URL est utilisé par le démon du filtre pour déterminer le gestionnaire de protocole à utiliser pour une URL d'analyse particulière. Pour plus d'informations, voir Processus d'analyse.
Types de gestionnaires de protocole
Recherche de contenu d'entreprise fournit la prise en charge de deux types de gestionnaires de protocole :
Hiérarchique Fonctionne avec des sources de contenu structurées telles que des partages de fichiers, qui incluent des structures comme des répertoires ou des dossiers à parcourir.
À base de liens Fonctionne avec des sources de contenu telles que des sites Web, où les liens dans le contenu indiquent comment la source est parcourue.
Initialisation des gestionnaires de protocole
Le démon du filtre initialise tous les les gestionnaires de protocole enregistrés à l'aide d'un appel de la méthode Init pour l'implémentation ISearchProtocol du gestionnaire de protocole. Ce démon utilise les méthodes ISearchProtocol pour traiter les URL d'analyse à partir du moteur d'index. Ce processus est décrit dans la section suivante.
Processus d'analyse
Le moteur d'index lance les analyses des sources de contenu. Il existe deux types d'analyses :
Analyse complète Analyse tout le contenu. La file d'attente des URL d'analyse est remplie avec les adresses de début de la source de contenu en cours d'analyse. Les entrées en double sont supprimées de la file d'attente. Le moteur d'index ajoute des URL d'analyse dans la file d'attente à mesure qu'elles sont détectées pendant le processus de filtrage. Les éléments supprimés sont effacés de l'index de contenu. Le processus d'analyse se poursuit jusqu'à ce que la file d'attente d'analyse soit vide.
Analyse incrémentielle Analyse le contenu modifié uniquement. La file d'attente des URL d'analyse est remplie avec les URL des adresses de début et les URL provenant de l'historique d'analyse pour cette source de contenu. Le moteur d'index passe l'horodatage au démon du filtre avec l'URL d'analyse. Pour le contenu SharePoint, le moteur d'index s'appuie sur le composant fonctionnel Journal des modifications de Windows SharePoint Services 3.0, de sorte que seul le contenu enregistré dans le journal des modifications est analysé.
Sélection du gestionnaire de protocole
Le démon du filtre détermine le gestionnaire de protocole approprié pour chaque URL d'analyse à partir du moteur d'index, en fonction de l'URL d'analyse et du schéma d'URL. Par exemple, pour l'URL d'analyse https://www.microsoft.com/fr/fr/default.aspx
, le démon du filtre sélectionne le gestionnaire de protocole HTTP par défaut, qui est un gestionnaire de protocole à base de liens.
Pour l'URL d'analyse \\CentralSales\Public\
, le démon du filtre sélectionne le gestionnaire de protocole de fichiers par défaut, qui est un gestionnaire de protocole hiérarchique.
Retour de l'objet URL Accessor
La méthode CreateAccessor de l'interface ISearchProtocol est appelée séparément pour chaque URL d'analyse.
Notes
Une seule URL d'analyse est traitée par appel de la méthode CreateAccessor, mais il peut y avoir plusieurs appels de cette méthode simultanément. Plusieurs threads peuvent donc travailler en parallèle.
La méthode CreateAccessor renvoie un objet URLAccessor que le démon du filtre utilise pour traiter l'URL d'analyse. L'objet URLAccessor est implémenté dans l'interface IUrlAccessor.
Filtrage du contenu
L'interface IUrlAccessor contient la méthode BindToFilter et la méthode BindToStream ; vous devez implémenter au moins l'une d'entre elles pour chaque URL d'analyse.
BindToFilter
Si l'URL d'analyse n'est pas associée à un flux binaire qui est analysé par l'un des filtres standard, vous devez implémenter la méthode BindToFilter. Dans ce scénario, l'IFilter doit également être implémenté comme partie de l'objet URLAccessor.
Vous pouvez également implémenter la méthode BindToFilter pour extraire les métadonnées associées aux éléments de contenu. Le gestionnaire de protocole envoie des segments de données contenant les propriétés et les liens au moteur d'index.
Si l'URL d'analyse est un dossier ou un répertoire, vous devez mettre en œuvre la méthode BindToFilter pour que le gestionnaire de protocole énumère le contenu du dossier ou du répertoire. Le gestionnaire de protocole doit ensuite émettre la propriété PID_GTHR_DIRLINK_WITH_TIME pour chaque élément. Cette propriété contient l'URL et l'horodatage de l'élément. Pendant une analyse incrémentielle, une fois que le moteur d'index a reçu le PID_GTHR_DIRLINK_WITH_TIME pour un élément donné, le gestionnaire de protocole compare le cachet de date à la valeur qui est stockée pour cet élément dans l'historique de l'analyse. Si l'horodatage n'a pas changé, l'élément n'est pas analysé. S'il n'y a aucune modification dans le répertoire ou si un seul élément n'a pas changé par rapport à l'horodatage passé par le robot d'indexation, le gestionnaire de protocole doit retourner PRTH_S_NOT_MODIFIED pour l'élément de contenu et aucun traitement supplémentaire de l'élément n'est requis. Pour plus d'informations sur PRTH_S_NOT_MODIFIED, voir Messages d'erreur des gestionnaires de protocole.
Les analyses incrémentielles sont ainsi optimisées, car le gestionnaire de protocole n'a pas besoin de créer un lien avec chaque élément individuellement. Il lui suffit d'en créer un avec les éléments qui ont été modifiés.
Notes
Si la méthode BindToFilter du gestionnaire de protocole n'implémente pas l'émission de PID_GTHR_DIRLINK_WITH_TIME et si la méthode CreateAccessor ne prend pas en charge le retour de PRTH_S_NOT_MODIFIED, les analyses incrémentielles effectuent essentiellement les mêmes tâches que les analyses complètes.
BindToStream
Implémente la méthode BindToStream si un flux binaire est associé à l'URL d'analyse qui doit être analysée par l'un des filtres standard tels que le filtre de texte, HTML ou Microsoft Office. La méthode BindToStream appelle le filtre approprié pour extraire le contenu de l'élément.
Pour plus d'informations sur la création d'un filtre, voir How to Write a Filter for Use by SharePoint Portal Server 2003 and Other Microsoft Search-Based Products .
Le démon du filtre appelle les méthodes BindToFilter et BindToStream une seule fois pour chaque URL d'analyse. L'une des méthodes doit réussir pour l'élément de contenu associé à l'URL d'analyse à filtrer.
Sécurité
La méthode GetSecurityDescriptor récupère les informations de sécurité associées à l'élément de contenu, par exemple les différents types d'accès autorisés pour des utilisateurs et des groupes d'utilisateurs particuliers. Si vous implémentez cette méthode, le démon du filtre fournit le moteur d'index avec les informations de sécurité sur l'élément de contenu. Le moteur d'index incorpore ensuite ces informations dans l'index de texte intégral avec le contenu du document.
Le moteur de requête exploite les informations de sécurité quand il exécute des requêtes par rapport à l'index de texte intégral, pour déterminer si l'utilisateur qui soumet une requête de recherche a accès aux éléments figurant dans les résultats. Il effectue alors l'ajustement de la sécurité des résultats de recherche pour que les utilisateurs voient seulement les éléments auxquels ils ont accès. Si vous n'implémentez pas la méthode GetSecurityDescriptor, cela signifie donc que tous les utilisateurs pourront récupérer et afficher le contenu de l'élément dans les résultats de leur requête de recherche. Pour plus d'informations sur la fonction d'ajustement de la sécurité, voir Modèle de sécurité de la recherche de contenu d'entreprise.
Dans cette section
Référence du gestionnaire de protocole
Voir aussi
Référence
Autres ressources
Architecture d'Enterprise Search
Vue d'ensemble des sources de contenu