sys.dm_fts_index_keywords_by_document (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Gibt Informationen über den Inhalt auf Dokumentebene von einem Volltextindex zurück, der der angegebenen Tabelle zugeordnet ist.

sys.dm_fts_index_keywords_by_document ist eine dynamische Verwaltungsfunktion.

So zeigen Sie Volltextindexinformationen auf höherer Ebene an

So zeigen Sie Informationen zu Inhalten auf Eigenschaftsebene im Zusammenhang mit einer Dokumenteigenschaft an

Syntax

  
sys.dm_fts_index_keywords_by_document  
(   
    DB_ID('database_name'),     OBJECT_ID('table_name')   
)  

Argumente

db_id('database_name')
Ein Aufruf der DB_ID() -Funktion. Diese Funktion akzeptiert einen Datenbanknamen und gibt die Datenbank-ID zurück, die von sys.dm_fts_index_keywords_by_document für die Suche nach der angegebenen Datenbank verwendet wird. Wenn database_name nicht angegeben ist, wird die aktuelle Datenbank-ID zurückgegeben.

object_id('table_name')
Ein Aufruf der OBJECT_ID() -Funktion. Diese Funktion akzeptiert einen Tabellennamen und gibt die Tabellen-ID der Tabelle zurück, die den zu überprüfenden Volltextindex enthält.

Zurückgegebene Tabelle

Column Datentyp Beschreibung
Schlüsselwort (keyword) nvarchar(4000) Die hexadezimale Darstellung des Schlüsselworts, das im Volltextindex gespeichert ist.

Hinweis: OxFF stellt das Sonderzeichen dar, das das Ende einer Datei oder eines Datasets angibt.
display_term nvarchar(4000) Die Klartextform des Schlüsselworts. Dieses Format wird vom internen Format abgeleitet, das im Volltextindex gespeichert ist.

Hinweis: OxFF stellt das Sonderzeichen dar, das das Ende einer Datei oder eines Datasets angibt.
column_id int Die ID der Spalte für die Volltextindizierung des aktuellen Schlüsselworts.
document_id int Die ID des Dokuments bzw. der Zeile für die Volltextindizierung des aktuellen Ausdrucks. Diese ID entspricht dem Volltextschlüsselwert dieses Dokuments bzw. dieser Zeile.
occurrence_count int Anzahl der Vorkommen des aktuellen Schlüsselworts im Dokument oder in der Zeile, die durch document_id angegeben wird. Wenn "search_property_name" angegeben wird, zeigt occurrence_count nur die Anzahl der Vorkommen des aktuellen Schlüsselworts in der angegebenen Sucheigenschaft innerhalb des Dokuments oder der Angegebenen Zeile an.

Hinweise

Die von sys.dm_fts_index_keywords_by_document zurückgegebenen Informationen dienen u. a. zum Abrufen der folgenden Ergebnisse:

  • Die Gesamtzahl der Schlüsselwörter in einem Volltextindex

  • Ob ein Schlüsselwort Teil eines bestimmten Dokuments bzw. einer Zeile ist

  • Wie oft ein Schlüsselwort im gesamten Volltextindex vorkommt, d. h.:

    (SUMME(occurrence_count) WHERE-Schlüsselwort =keyword_value )

  • Wie oft ein Schlüsselwort in einem bestimmten Dokument bzw. in einer Zeile vorkommt

  • Wie viele Schlüsselwörter ein bestimmtes Dokument bzw. eine Zeile enthält

Darüber hinaus können Sie anhand der von sys.dm_fts_index_keywords_by_document zurückgegebenen Informationen alle Schlüsselwörter eines gegebenen Dokuments oder einer gegebenen Zeile abrufen.

Wenn die Volltextschlüsselspalte wie empfohlen mit dem integer-Datentyp definiert ist, kann die document_id direkt dem Volltextschlüsselwert in der Basistabelle zugeordnet werden.

Wenn als Datentyp für die Volltextschlüsselspalte jedoch ein anderer Typ als Integer festgelegt ist, stellt document_id nicht den Volltextschlüsselwert in der Basistabelle dar. In diesem Fall müssen Sie diese Ansicht mit den von sp_fulltext_keymappings zurückgegebenen Ergebnissen verbinden, um die Zeile in der Basistabelle zu identifizieren, die von dm_fts_index_keywords_by_document zurückgegeben wird. Speichern Sie jedoch zuvor die Ausgabe der gespeicherten Prozedur in eine temporäre Tabelle. Anschließend können Sie die Spalte document_id von dm_fts_index_keywords_by_document mit der von der gespeicherten Prozedur zurückgegebenen Spalte DOCID verknüpfen. Beachten Sie, dass eine Zeitstempelspalte zum Einfügezeitpunkt keine Werte empfangen kann, da sie von SQL Server automatisch generiert werden. Daher muss die Zeitstempelspalte in varbinary(8) -Spalten konvertiert werden. Das folgende Beispiel zeigt die erforderlichen Schritte: In diesem Beispiel ist table_id die ID Ihrer Tabelle, database_name ist der Name Der Datenbank, und table_name ist der Name der Tabelle.

USE database_name;  
GO  
CREATE TABLE #MyTempTable   
   (  
      docid INT PRIMARY KEY ,  
      [key] INT NOT NULL  
   );  
DECLARE @db_id int = db_id(N'database_name');  
DECLARE @table_id int = OBJECT_ID(N'table_name');  
INSERT INTO #MyTempTable EXEC sp_fulltext_keymappings @table_id;  
SELECT * FROM sys.dm_fts_index_keywords_by_document   
   ( @db_id, @table_id ) kbd  
   INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;  
GO  
  

Berechtigungen

Erfordert CREATE FULLTEXT CATALOG-Berechtigungen und die SELECT-Berechtigung für die vom Volltextindex abgedeckten Spalten.

Beispiele

A. Anzeigen des Inhalts eines Volltextindexes auf Dokumentebene

Im folgenden Beispiel wird der Inhalt des Volltextindexes auf Dokumentebene in der HumanResources.JobCandidate-Tabelle der AdventureWorks2022-Beispieldatenbank angezeigt.

Hinweis

Sie können diesen Index erstellen, indem Sie das für die HumanResources.JobCandidate Tabelle in CREATE FULLTEXT INDEX (Transact-SQL) bereitgestellte Beispiel ausführen.

SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),   
object_id('HumanResources.JobCandidate'));  
GO  

Weitere Informationen

Volltextsuche und dynamische Suchansichten und -funktionen für die semantische Suche (Transact-SQL)
Volltextsuche
sys.dm_fts_index_keywords (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
sp_fulltext_keymappings (Transact-SQL)
Verbessern der Leistung von Volltextindizes