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.
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 Créer et gérer des 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_keywords_by_document.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.
R : Obtenir toutes les valeurs Clé et DocId
L’exemple suivant utilise une DECLARE @local_variable instruction 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
du paramètre docId et de 4 pour le paramètre clé .
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, NULL, 4;
GO
Cet exemple retourne les résultats suivants.
TABLE | docId | key |
---|---|---|
4 |
4 |
4 |