sys.dm_fts_index_keywords_by_property (Transact-SQL)

Gilt für:SQL Server

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 sehen können, welche registrierten Eigenschaften von IFilters zur Indexzeit ausgegeben wurden, sowie den genauen Inhalt jeder Eigenschaft in jedem indizierten Dokument.

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

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

Hinweis

Informationen zu Sucheigenschaftenlisten finden Sie unter Suchen von Dokumenteigenschaften mit 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 DB_ID() -Funktion. Diese Funktion akzeptiert einen Datenbanknamen und gibt die Datenbank-ID zurück, die sys.dm_fts_index_keywords_by_property verwendet, um die angegebene Datenbank zu finden. 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.
property_id int Interne Eigenschafts-ID der Sucheigenschaft im Volltextindex der Tabelle, die Sie im parameter OBJECT_ID('table_name') angegeben haben.

Wenn einer Sucheigenschaftenliste eine angegebene Eigenschaft hinzugefügt wird, registriert die Volltext-Engine 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.

Hinweis: Die interne Eigenschafts-ID unterscheidet sich von dem ganzzahligen Eigenschaftsbezeichner, der beim Hinzufügen der Eigenschaft zur Sucheigenschaftenliste angegeben wird. Weitere Informationen finden Sie unter Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten.

So zeigen Sie die Zuordnung zwischen property_id und dem Eigenschaftennamen an:
sys.registered_search_properties (Transact-SQL)

Bemerkungen

Diese dynamische Verwaltungsansicht kann Fragen wie die folgenden 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. In diesem Fall müssen Sie diese Ansicht mit den von sp_fulltext_keymappings zurückgegebenen Ergebnissen verknüpfen, um die Zeile in der Basistabelle zu identifizieren, die von dm_fts_index_keywords_by_property zurückgegeben wird. 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 dieser gespeicherten Prozedur zurückgegeben wird. Beachten Sie, dass eine Zeitstempelspalte zur Einfügezeit 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 der Name Ihrer Datenbank und table_name der Name Ihrer 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. Im Beispiel werden innere Verknüpfungen verwendet, um Spalten aus sys.registered_search_properties und sys.fulltext_indexes zu kombinieren.

-- Once the full-text index is configured to support property searching  
-- on the Author property, return any keywords indexed for this property.  
USE AdventureWorks2022;  
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  

Weitere Informationen

Volltextsuche
Verbessern der Leistung von Volltextindizes
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)
Suchen von Dokumenteigenschaften mithilfe von Sucheigenschaftenlisten