Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Retourne des informations sur le contenu de niveau document d'un index de recherche en texte intégral associé à la table spécifiée.
sys.dm_fts_index_keywords_by_document est une fonction de gestion dynamique.
Pour consulter les informations d’index intégral de niveau supérieur, voir sys.dm_fts_index_keywords.
Pour consulter des informations sur le contenu au niveau de la propriété lié à une propriété de document, voir sys.dm_fts_index_keywords_by_property.
Syntax
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name')
, OBJECT_ID('table_name')
)
Arguments
DB_ID('database_name')
Un appel à la fonction DB_ID .
DB_ID est int. Cette fonction accepte un nom de base de données et renvoie l’identifiant de la base de données, qui sys.dm_fts_index_keywords_by_document sert à trouver la base de données spécifiée. Si database_name est omis, la fonction retourne l’ID de la base de données active.
OBJECT_ID('table_name')
Un appel à la fonction OBJECT_ID .
OBJECT_ID est int. Cette fonction accepte un nom de table et renvoie l’ID de la table contenant l’index texte intégral à inspecter.
Table retournée
| Nom de la colonne | Type de données | Pouvant être nul | Description |
|---|---|---|---|
keyword
1 |
varbinary(128) | Non | Représentation hexadécimale du mot clé stocké dans l'index de recherche en texte intégral. |
display_term
1 |
nvarchar(4000) | Non | Format explicite du mot clé. Ce format est dérivé du format interne stocké dans l'index de recherche en texte intégral. |
column_id |
int | Non | ID de la colonne à partir de laquelle le mot clé actuel a été indexé en texte intégral. |
document_id |
bigint | Oui | ID de la ligne ou du document à partir duquel le terme actuel a été indexé en texte intégral. Cet ID correspond à la valeur de clé de texte intégral de cette ligne ou de ce document. |
occurrence_count |
int | Oui | Nombre d’occurrences du mot-clé courant dans le document ou la ligne indiquée par document_id. Lorsque « search_property_name » est spécifié, il occurrence_count affiche uniquement le nombre d’occurrences du mot-clé courant dans la propriété de recherche spécifiée au sein du document ou de la ligne. |
10xFF représente le caractère spécial qui indique la fin d’un fichier ou d’un jeu de données.
Remarques
Les informations fournies sys.dm_fts_index_keywords_by_document par elles sont utiles pour découvrir, entre autres choses :
- Nombre total de mots clés contenus dans un index de recherche en texte intégral.
- Si un mot clé fait partie d'une ligne ou d'un document donné.
- Combien de fois un mot-clé apparaît dans l’index intégral du texte ? C’est-à-dire,
SUM(occurrence_count) WHERE keyword = <keyword_value> - Nombre de fois qu'un mot clé apparaît dans une ligne ou un document donné.
- Nombre de mots clés contenus dans une ligne ou un document donné.
De plus, vous pouvez également utiliser les informations fournies par sys.dm_fts_index_keywords_by_document pour récupérer tous les mots-clés appartenant à un document ou une ligne donnée.
Lorsque la colonne de clé en texte intégral est un type de données entier, comme recommandé, elle document_id correspond directement à la valeur de la clé en texte intégral dans la table de base.
En revanche, lorsque la colonne de la clé en texte intégral utilise un type de données non entier, document_id elle ne représente pas la clé en texte intégral dans la table de base. Dans ce cas, pour identifier la ligne dans la table de base qui est retournée par dm_fts_index_keywords_by_document, vous devez relier cette vue aux résultats rendus par sp_fulltext_keymappings.
Avant de pouvoir les joindre, vous devez stocker la sortie de la procédure stockée dans une table temp. Ensuite, vous pouvez relier la document_id colonne de dm_fts_index_keywords_by_document avec la DocId colonne retournée par cette procédure stockée. Une colonne d'horodatage ne peut pas recevoir de valeurs au moment de l'insertion, car elles sont générées automatiquement par SQL Server. Par conséquent, la colonne timestamp doit être convertie en colonnes varbinary(8). L'exemple suivant affiche ces étapes. Dans cet exemple, @table_id est l’ID de votre table, database_name est le nom de votre base de données, et table_name est le nom de votre table.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY,
[key] INT NOT NULL
);
DECLARE @db_id AS INT = DB_ID(N'database_name');
DECLARE @table_id AS INT = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable
EXECUTE sp_fulltext_keymappings @table_id;
SELECT *
FROM sys.dm_fts_index_keywords_by_document(@db_id, @table_id) AS kbd
INNER JOIN #MyTempTable AS tt
ON tt.[docid] = kbd.document_id;
GO
Permissions
Nécessite SELECT une autorisation sur les colonnes couvertes par l’index intégral et CREATE FULLTEXT CATALOG les permissions.
Examples
A. Afficher le contenu indexé en texte intégral au niveau du document
L'exemple suivant affiche le contenu de l'index de recherche en texte intégral au niveau du document dans la table HumanResources.JobCandidate de l'exemple de base de données AdventureWorks2025.
Note
Vous pouvez créer cet index en exécutant l’exemple fourni pour la HumanResources.JobCandidate table dans CREATE FULLTEXT INDEX.
SELECT *
FROM sys.dm_fts_index_keywords_by_document(DB_ID('AdventureWorks2025'), OBJECT_ID('HumanResources.JobCandidate'));
GO