sp_fulltext_keymappings (Transact-SQL)

Retourne des mappages entre identificateurs de document (DocIds) et valeurs de clé de texte intégral. La colonne DocId contient les valeurs d'un entier bigint mappé à une valeur de clé de texte intégral particulière dans une table indexée en texte intégral. Les valeurs de DocId qui répondent à une condition de recherche sont transmises du moteur de texte intégral au moteur de base de données, où elles sont mappées aux valeurs de clé de texte intégral de la table de base interrogée. La colonne de clé de texte intégral est un index unique qui est resuis sur une seule colonne de la table. 

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

sp_fulltext_keymappings { table_id | table_id, docid | table_id, NULL, key }

Paramètres

Important

Pour plus d'informations sur l'utilisation d'un, de deux ou de trois paramètres, consultez « Remarques » plus loin dans cette rubrique.

Valeurs des codes de retour

Aucune.

Ensembles de résultats

Nom de la colonne

Type de données

Description

DocId

bigint

Colonne de l'ID interne de document (DocId) qui correspond à la valeur de la clé.

Clé

*

Valeur de la clé de texte intégral pour une table spécifiée.

Si aucune clé de texte intégral n'existe dans le catalogue, un ensemble de lignes vide est retourné.

* Le type de données de la clé est identique à celui du type de données de la colonne de clé de texte intégral dans la table de base.

Autorisations

Cette fonction est publique et ne requiert pas d'autorisation spéciale.

Notes

Le tableau ci-dessous décrit l'impact de l'utilisation d'un, de deux ou de trois paramètres.

Cette liste de paramètres…

Donne le résultat suivant...

table_id

Lorsqu'il est invoqué avec uniquement le paramètre table_id, le sp_fulltext_keymappings retourne toutes les valeurs de clé de texte intégral (Clé) de la table de base spécifiée, avec le DocId qui correspond à chaque clé. Cela inclut des clés qui sont en attente de suppression.

Cette fonction est utile pour la résolution de divers problèmes. Elle est particulièrement utile pour afficher le contenu d'index de recherche en texte intégral lorsque la clé de texte intégral sélectionnée n'est pas un type de données integer. Cela implique qu'il faut combiner les résultats de sp_fulltext_keymappings avec les résultats de sys.dm_fts_index_keywords_by_document. Pour plus d'informations, consultez sys.dm_fts_index_keywords_by_document (Transact-SQL).

En général, toutefois, nous vous recommandons, si possible, d'exécuter sp_fulltext_keymappings avec les paramètres qui spécifient une clé de de texte intégral spécifique ou DocId. C'est beaucoup plus efficace que retourner un mappage de clés entier, surtout pour une table très volumineuse pour laquelle le coût de performance lié au retour d'un mappage de clés entier peut être conséquent.

table_id, docid

Si seuls table_id et docid sont spécifiés, docid doit avoir une valeur autre que NULL et spécifier un DocId valide dans la table spécifiée. Cette fonction est utile pour isoler la clé de texte intégral personnalisée de la table de base qui correspond au DocId d'un index de recherche en texte intégral particulier.

table_id, NULL, key

Si trois paramètres sont présents, le deuxième paramètre doit être NULL, et key doit être non NULL et spécifier une valeur de clé de texte intégral valide à partir de la table spécifiée. Cette fonction est utile pour isoler le DocId qui correspond à une clé de texte intégral particulière de la table de base.

Une erreur est retournée dans l'une des conditions suivantes :

  • Vous spécifiez un table_id non valide.

  • La table n'est pas indexée en texte intégral.

  • Une valeur NULL est rencontrée pour un paramètre qui peut être non Null.

Exemples

Notes

Les exemples de cette section utilisent la table Production.ProductReview de l'exemple de base de données AdventureWorks2008R2. Vous pouvez créer cet index en exécutant l'exemple fourni pour la table ProductReview dans CREATE FULLTEXT INDEX (Transact-SQL).

A. Obtention de toutes les valeurs de clés et valeurs DocId

L'exemple suivant utilise une instruction DECLARE pour créer une variable locale, @table_id, et lui assigner comme valeur l'ID de la table ProductReview. L'exemple exécute sp_fulltext_keymappings qui spécifie @table_id pour le paramètre table_id.

Notes

L'utilisation de sp_fulltext_keymappings avec uniquement le paramètre table_id convient aux petites tables.

USE AdventureWorks2008R2;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

Cet exemple retourne toutes les clés DocIds et toutes les clés de texte intégral de la table, comme suit :

docid

key

1

1

1

2

2

2

3

3

3

4

4

4

B. Obtention de la valeur DocId pour une valeur de clé spécifique

L'exemple suivant utilise une instruction DECLARE pour créer une variable locale, @table_id, et lui assigner comme valeur l'ID de la table ProductReview. L'exemple exécute sp_fulltext_keymappings qui spécifie @table_id pour le paramètre table_id, la valeur NULL pour le paramètre docid, et 4 pour le paramètre key.

Notes

L'utilisation de sp_fulltext_keymappings avec uniquement le paramètre table_idconvient aux petites tables.

USE AdventureWorks2008R2;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Cet exemple retourne les résultats suivants.

docid

key

4

4

4