Filtres de recherche en texte intégral

L'indexation de documents dans une colonne de type de données varbinary, varbinary(max), image ou xml nécessite un traitement supplémentaire. Ce traitement doit être effectué par un filtre. Le filtre extrait les informations textuelles du document (en supprimant la mise en forme). Le filtre envoie ensuite le texte au composant d'analyseur lexical pour la langue associée à la colonne de table.

Un filtre donné est spécifique à un type de document donné (.doc, .pdf, .xls, .xml, etc.). Ces filtres implémentent l'interface IFilter. Pour plus d'informations sur ces types de document, interrogez l'affichage catalogue sys.fulltext_document_types.

Des documents binaires peuvent être stockés dans une colonne varbinary(max) ou image unique. Pour chaque document, SQL Server choisit le filtre correct en fonction de l'extension de fichier. Dans la mesure où cette dernière n'est pas visible lorsque le fichier est stocké dans une colonne varbinary(max) ou image, l'extension de fichier (.doc, .xls, .pdf, etc.) doit figurer dans une autre colonne de la table, que l'on nomme colonne de type. Cette colonne de type peut être composée de n'importe quel type de données de caractères ; par ailleurs, elle contient l'extension de fichier du document, par exemple « .doc » pour un document Microsoft Word. Dans la table Document contenue dans Adventure Works, la colonne Document est de type varbinary(max) alors que la colonne de type FileExtension est de type nvarchar(8).

Notes

Un filtre peut être en mesure de gérer des objets incorporés dans l'objet parent, selon son implémentation. Toutefois, SQL Server ne configure pas de filtres pour suivre des liens vers d'autres objets.

SQL Server 2008 installe ses propres filtres XML et HTML. De plus, tous les filtres des formats propriétaires Microsoft (.doc, .xdoc, .ppt, etc.) qui sont déjà installés sur le système d'exploitation sont également chargés par SQL Server. Pour identifier les filtres actuellement chargés sur une instance de SQL Server, utilisez la procédure stockée sp_help_fulltext_system_components, comme suit :

EXEC sp_help_fulltext_system_components 'filter'; 

Toutefois, avant de pouvoir utiliser des filtres pour des formats non Microsoft, vous devez les charger manuellement dans l'instance de serveur. Pour plus d'informations sur l'installation de filtres supplémentaires, consultez Procédure : modifier la liste des analyseurs lexicaux et des filtres inscrits (Transact-SQL).

Pour voir la colonne de type dans un index de recherche en texte intégral existant