sp_fulltext_keymappings (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Retourne des mappages entre identificateurs de document (DocIds) et valeurs de clé de texte intégral. La colonne DocId contient des valeurs pour 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 clé de texte intégral est un index unique qui est requis sur une seule colonne de la table.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]

Arguments

table_id

ID d’objet de la table indexée en texte intégral. Si vous spécifiez un table_id non valide, une erreur est retournée. Pour plus d’informations sur l’obtention de l’ID d’objet d’une table, consultez OBJECT_ID (Transact-SQL).

docId

Identificateur de document interne (DocId) qui correspond à la valeur de clé. Une valeur docId non valide ne retourne aucun résultat.

key

Valeur de clé de texte intégral de la table spécifiée. Une valeur key non valide ne retourne pas de résultat. Pour plus d’informations sur les valeurs de clé de texte intégral, consultez Gérer les index de recherche en texte intégral.

Valeurs des codes de retour

Aucune.

Jeu de résultats

Nom de la colonne Type de données Description
DocId bigint Colonne d’identificateur de document interne (DocId) qui correspond à la valeur de clé.
Key 1 Valeur de clé de texte intégral de la table spécifiée.

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

1 Le type de données de clé est identique au type de données de la colonne clé de texte intégral dans la table de base.

Autorisations

Cette fonction est publique et ne nécessite aucune 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... A ce résultat...
table_id Lorsqu’elle est appelée uniquement avec le paramètre table_id , sp_fulltext_keymappings retourne toutes les valeurs de clé de texte intégral (clé) de la table de base spécifiée, ainsi que le DocId correspondant à chaque clé. Cela inclut des clés qui sont en attente de suppression.

Cette fonction est utile pour résoudre différents problèmes. Il est utile de voir le contenu de l’index de recherche en texte intégral lorsque la clé de texte intégral sélectionnée n’est pas d’un type de données entier. Cela implique de joindre les résultats des sp_fulltext_keymappings résultats des résultats de sys.dm_fts_index_keywords_by_document. Pour plus d’informations, consultez sys.dm_fts_index_mot clés_by_document (Transact-SQL).

En général, toutefois, nous vous recommandons d’exécuter sp_fulltext_keymappings , si possible, avec des paramètres qui spécifient une clé de texte intégral spécifique ou DocId. Cela est beaucoup plus efficace que le retour d’une carte de clés entière, en particulier pour une table volumineuse pour laquelle le coût de performances de retour de l’ensemble de la carte de clés peut être important.
table_id, docId Si seules les table_id et docId sont spécifiées, docId doit être non 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, clé Si trois paramètres sont présents, le deuxième paramètre doit être NULL, et la clé 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
  • NULL est rencontré pour un paramètre qui peut être non null.

Exemples

Remarque

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

A. Obtenir toutes les valeurs Clé et DocId

L’exemple suivant utilise une instruction DECLARE pour créer une variable @table_id locale et affecter l’ID de la ProductReview table comme valeur. L’exemple exécute la sp_fulltext_keymappings spécification @table_id du paramètre table_id .

Remarque

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

USE AdventureWorks2022;
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 :

TABLE docId key
1 1 1
2 2 2
3 3 3
4 4 4

B. Obtenir la valeur DocId d’une valeur 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 la sp_fulltext_keymappings spécification @table_id du paramètre table_id , NULL pour le paramètre docId et 4 pour le paramètre clé .

Remarque

Utilisation sp_fulltext_keymappings avec uniquement les paramètres table_id appropriés pour les petites tables.

USE AdventureWorks2022;
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.

TABLE docId key
4 4 4