sys.dm_fts_index_keywords_by_property (Transact-SQL)

Gibt alle eigenschaftsbezogenen Inhalte im Volltextindex einer angegebenen Tabelle zurück. Dies schließt alle Daten ein, die zu Eigenschaften gehören, die von der diesem Volltextindex zugeordneten Sucheigenschaftenliste registriert wurden.

sys.dm_fts_index_keywords_by_property ist eine dynamische Verwaltungsfunktion, mit der Sie die registrierten Eigenschaften anzeigen können, die von IFilters zur Indexzeit ausgegeben wurden, sowie den genauen Inhalt aller Eigenschaften in den indizierten Dokumenten.

So zeigen Sie alle Inhalte auf Dokumentebene (einschließlich eigenschaftsbezogener Inhalte) an

So zeigen Sie Informationen zu einem Volltextindex auf höherer Ebene an

HinweisHinweis

Informationen zu Sucheigenschaftenlisten finden Sie unter Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten.

Syntax

sys.dm_fts_index_keywords_by_property
( 
    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_property 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.

property_id

int

Interne Eigenschaften-ID der Sucheigenschaft im Volltextindex der Tabelle, die Sie im OBJECT_ID('table_name')-Parameter angegeben haben.

Wenn einer Sucheigenschaftenliste eine angegebene Eigenschaft hinzugefügt wird, registriert das Volltextmodul die Eigenschaft und weist ihr eine interne Eigenschaften-ID zu, die für diese Eigenschaftenliste spezifisch ist. Die interne Eigenschaften-ID stellt eine ganze Zahl dar und ist für eine bestimmte Sucheigenschaftenliste eindeutig. Wenn eine bestimmte Eigenschaft für mehrere Sucheigenschaftenlisten registriert wird, kann für jede Sucheigenschaftenliste eine andere interne Eigenschaften-ID zugewiesen werden.

HinweisHinweis

Beim Hinzufügen der Eigenschaft zur Sucheigenschaftenliste unterscheidet sich die interne Eigenschaften-ID unterschiedlich vom angegebenen ganzzahligen Eigenschaftsbezeichner. Weitere Informationen finden Sie unter Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten.

So zeigen Sie die Zuordnung zwischen property_id und dem Eigenschaftsnamen an

Hinweise

Mithilfe dieser dynamischen Verwaltungssicht können Sie beispielsweise folgende Fragen beantworten:

  • Welcher Inhalt wird in einer angegebenen Eigenschaft für eine angegebene DocID gespeichert?

  • Wie gängig ist eine angegebene Eigenschaft im Hinblick auf indizierte Dokumente?

  • Welche Dokumente enthalten eigentlich eine angegebene Eigenschaft? Dies ist nützlich, wenn die Abfrage in einer angegebenen Sucheigenschaft nicht wie erwartet ein Dokument zurückgibt.

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_property 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_property 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_property 
   ( @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

Im folgenden Beispiel werden Schlüsselwörter in der Author-Eigenschaft im Volltextindex der Production.Document-Tabelle der AdventureWorks-Beispieldatenbank zurückgegeben. Im Beispiel wird der Alias KWBPOP für die von sys.dm_fts_index_keywords_by_property zurückgegebene Tabelle verwendet. Das Beispiel kombiniert Spalten von sys.registered_search_properties und sys.fulltext_indexes mithilfe von inneren Joins.

-- Once the full-text index is configured to support property searching
-- on the Author property, return any keywords indexed for this property.
USE AdventureWorks;
GO 
SELECT KWBPOP.* FROM 
   sys.dm_fts_index_keywords_by_property( DB_ID(), 
   object_id('Production.Document') ) AS KWBPOP
   INNER JOIN
      sys.registered_search_properties AS RSP ON( 
         (KWBPOP.property_id = RSP.property_id) 
         AND (RSP.property_name = 'Author') )
   INNER JOIN
      sys.fulltext_indexes AS FTI ON( 
         (FTI.[object_id] = object_id('Production.Document')) 
         AND (RSP.property_list_id = FTI.property_list_id) );
GO

Siehe auch

Verweis

sp_fulltext_keymappings (Transact-SQL)

sys.dm_fts_index_keywords_by_document (Transact-SQL)

sys.dm_fts_index_keywords (Transact-SQL)

sys.registered_search_properties (Transact-SQL)

sys.registered_search_property_lists (Transact-SQL)

Konzepte

Volltextsuche (SQL Server)

Verbessern der Leistung von Volltextindizes

Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten