Exécution de requêtes sur des colonnes varbinary(max) et xml (Recherche en texte intégral)

Si une colonne varbinary(max), varbinary, ou xml est indexée en texte intégral, elle peut faire l'objet d'une requête à l'aide des prédicats de texte intégral (CONTAINS et FREETEXT) et des fonctions de texte intégral (CONTAINSTABLE et FREETEXTTABLE), au même titre que n'importe quelle autre colonne indexée en texte intégral.

Important

La recherche en texte intégral fonctionne également avec des colonnes de type image. Cependant, le type de données image sera supprimé dans une version ultérieure de SQL Server. Évitez d'utiliser ce type de données dans un nouveau travail de développement et prévoyez de modifier les applications qui l'utilisent actuellement. Utilisez le type de données varbinary(max) à la place.

Données varbinary(max) ou varbinary

De nombreux types de document peuvent être stockés dans une seule colonne varbinary(max) ou varbinary. SQL Server 2008 prend en charge tout type de document pour lequel un filtre est installé et disponible dans le système d'exploitation. Le type d'un document est identifié par l'extension de fichier de celui-ci. Par exemple, pour une extension de fichier .doc, la recherche en texte intégral utilise le filtre qui prend en charge les documents Microsoft Word. Pour obtenir la liste des types de document disponibles, interrogez l'affichage catalogue sys.fulltext_document_types.

Notez que le Moteur d'indexation et de recherche en texte intégral peut bénéficier des filtres installés dans le système d'exploitation. Avant de pouvoir utiliser des filtres de système d'exploitation, des analyseurs lexicaux et des générateurs de formes dérivées, vous devez les charger dans l'instance de serveur, comme suit :

EXEC sp_fulltext_service @action='load_os_resources', @value=1;

Pour créer un index de recherche en texte intégral sur une colonne varbinary(max), le Moteur d'indexation et de recherche en texte intégral a besoin d'accéder aux extensions de fichier des documents dans la colonne varbinary(max). Ces informations doivent être stockées dans une colonne de table, appelée colonne de type, qui doit être associée à la colonne varbinary(max) dans l'index de recherche en texte intégral. Lors de l'indexation d'un document, le Moteur d'indexation et de recherche en texte intégral utilise l'extension de fichier indiquée dans la colonne de type pour identifier le filtre à utiliser.

Données xml

Une colonne de type de données xml stocke uniquement des documents et des fragments XML, et seul le filtre XML est utilisé pour les documents. Par conséquent, une colonne de type est inutile. Sur les colonnes xml, l'index de recherche en texte intégral indexe le contenu des éléments XML, sans prendre en compte les balises XML. Les valeurs d'attribut sont indexées en texte intégral, sauf lorsqu'il s'agit de valeurs numériques. Des balises d'éléments sont utilisées comme limites de jeton. Les fragments et les documents XML ou HTML correctement formés contenant plusieurs langues sont pris en charge.

Pour plus d'informations concernant l'exécution de requêtes sur une colonne xml, consultez Index de texte intégral sur une colonne XML.