sys.dm_fts_index_keywords_by_document (Transact-SQL)

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 Informationen zu einem Volltextindex auf höherer Ebene an

So zeigen Sie Informationen zu Inhalten auf Eigenschaftenebene an, die sich auf eine Dokumenteigenschaft beziehen

Syntax

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

Argumente

  • db_id('database_name')
    Ein Aufruf der Funktion DB_ID(). 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 Funktion OBJECT_ID(). 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

Spalte

Datentyp

Beschreibung

keyword

nvarchar(4000)

Die hexadezimale Darstellung des Schlüsselworts, das im Volltextindex gespeichert ist.

HinweisHinweis

OxFF stellt das Sonderzeichen dar, mit dem das Ende einer Datei oder eines Datasets angegeben wird.

display_term

nvarchar(4000)

Die Klartextform des Schlüsselworts. Dieses Format wird vom internen Format abgeleitet, das im Volltextindex gespeichert ist.

HinweisHinweis

OxFF stellt das Sonderzeichen dar, mit dem das Ende einer Datei oder eines Datasets angegeben wird.

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

Die Anzahl der Vorkommen des aktuellen Schlüsselworts in dem mit document_id angegebenen Dokument bzw. in der Zeile. Wenn 'search_property_name' angegeben wird, zeigt occurrence_count nur die Anzahl der Vorkommen des aktuellen Schlüsselworts in der angegebenen Sucheigenschaft im Dokument oder in der 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.:

    (SUM(occurrence_count) WHERE keyword=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

Sie können auch die von sys.dm_fts_index_keywords_by_document bereitgestellten Informationen verwenden, um alle Schlüsselwörter abzurufen, die einem vorhandenen Dokument oder einer Zeile zugehörig sind.

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. Um in diesem Fall die Zeile in der Basistabelle zu identifizieren, die von dm_fts_index_keywords_by_document zurückgegeben wird, müssen Sie die Sicht mit den von sp_fulltext_keymappings zurückgegebenen Ergebnissen verknüpfen. Speichern Sie jedoch zuvor die Ausgabe der gespeicherten Prozedur in eine temporäre Tabelle. Anschließend können Sie die document_id-Spalte von dm_fts_index_keywords_by_document mit der DocId-Spalte verknüpfen, die von der gespeicherten Prozedur zurückgegeben wird. Beachten Sie, dass eine timestamp-Spalte zum Zeitpunkt des Einfügens keine Werte abrufen kann, da sie von SQL Server automatisch generiert werden. Die timestamp-Spalte muss daher in varbinary(8)-Spalten konvertiert werden. Das folgende Beispiel zeigt die erforderlichen Schritte: In diesem Beispiel ist table_id die ID der Tabelle, database_name der Name der Datenbank und table_name 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 AdventureWorks-Beispieldatenbank angezeigt.

HinweisHinweis

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

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

Siehe auch

Verweis

Dynamische Verwaltungssichten und -funktionen für Volltextsuche und semantische Suche (Transact-SQL)

sys.dm_fts_index_keywords (Transact-SQL)

sys.dm_fts_index_keywords_by_property (Transact-SQL)

sp_fulltext_keymappings (Transact-SQL)

Konzepte

Volltextsuche (SQL Server)

Verbessern der Leistung von Volltextindizes