sp_fulltext_keymappings (Transact-SQL)

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

Gibt Zuordnungen zwischen Dokumentbezeichnern (DocIds) und Volltextschlüsselwerten zurück. Die DocId-Spalte enthält Werte für eine große ganzzahlige Zahl, die einem bestimmten Volltextschlüsselwert in einer indizierten Tabelle zugeordnet ist. DocId-Werte, die eine Suchbedingung erfüllen, werden von der Volltext-Engine an die Datenbank-Engine übergeben. Dort werden sie Volltextschlüsselwerten aus der abgefragten Basistabelle zugeordnet. Die Volltextschlüsselspalte ist ein eindeutiger Index, der in einer Spalte der Tabelle erforderlich ist.

Transact-SQL-Syntaxkonventionen

Syntax

sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]

Argumente

table_id

Die Objekt-ID der indizierten Volltexttabelle. Wenn Sie eine ungültige table_id angeben, wird ein Fehler zurückgegeben. Informationen zum Abrufen der Objekt-ID einer Tabelle finden Sie unter OBJECT_ID (Transact-SQL).

Docid

Eine interne Dokument-ID (DocId), die dem Schlüsselwert entspricht. Ein ungültiger docId-Wert gibt keine Ergebnisse zurück.

key

Der Volltextschlüsselwert aus der angegebenen Tabelle. Ein ungültiger key -Wert gibt keine Ergebnisse zurück. Informationen zu Volltextschlüsselwerten finden Sie unter Verwalten von Volltextindizes.

Rückgabecodewerte

Keine.

Resultset

Spaltenname Datentyp BESCHREIBUNG
DocId bigint Eine interne Dokumentbezeichnerspalte (DocId), die dem Schlüsselwert entspricht.
Key 1 Der Volltextschlüsselwert aus der angegebenen Tabelle.

Wenn in der Zuordnungstabelle keine Volltextschlüssel vorhanden sind, wird ein leeres Rowset zurückgegeben.

1 Der Datentyp für Schlüssel entspricht dem Datentyp der Volltextschlüsselspalte in der Basistabelle.

Berechtigungen

Diese Funktion ist öffentlich und erfordert keine speziellen Berechtigungen.

Hinweise

In der folgenden Tabelle sind die Auswirkungen beschrieben, die sich ergeben, wenn ein, zwei oder drei Parameter verwendet werden.

Diese Parameterliste... Hat dieses Ergebnis...
table_id Wenn nur der parameter table_id aufgerufen wird, sp_fulltext_keymappings werden alle Volltextschlüsselwerte (Key) aus der angegebenen Basistabelle zusammen mit der DocId zurückgegeben, die den einzelnen Schlüsseln entspricht. Dies schließt auch Schlüssel mit ein, für die ein Löschvorgang aussteht.

Diese Funktion ist nützlich für die Problembehandlung verschiedener Probleme. Es ist nützlich, den Volltextindexinhalt anzuzeigen, wenn der ausgewählte Volltextschlüssel kein ganzzahliger Datentyp ist. Dies umfasst die Verknüpfung der Ergebnisse mit sp_fulltext_keymappings den Ergebnissen von sys.dm_fts_index_keywords_by_document. Weitere Informationen finden Sie unter sys.dm_fts_index_Schlüsselwort (keyword)s_by_document (Transact-SQL).

Im Allgemeinen wird jedoch empfohlen, dass Sie nach Möglichkeit mit Parametern ausgeführt werden sp_fulltext_keymappings , die einen bestimmten Volltextschlüssel oder eine DocId angeben. Dies ist viel effizienter als die Rückgabe einer gesamten Schlüsselkarte, insbesondere für eine große Tabelle, für die die Leistungskosten für die Rückgabe der gesamten Schlüsselkarte erheblich sein können.
table_id, docId Wenn nur die table_id und docId angegeben sind, muss docId nicht NULL sein und eine gültige DocId in der angegebenen Tabelle angeben. Diese Funktion ist hilfreich, um den benutzerdefinierten Volltextschlüssel aus der Basistabelle zu isolieren, die der DocId eines bestimmten Volltextindex entspricht.
table_id, NULL, Schlüssel Wenn drei Parameter vorhanden sind, muss der zweite Parameter NULL sein, und der Schlüssel muss nicht NULL sein und einen gültigen Volltextschlüsselwert aus der angegebenen Tabelle angeben. Diese Funktion ist hilfreich, um die DocID zu isolieren, die einem bestimmten Volltextschlüssel aus der Basistabelle entspricht.

Wenn eine der folgenden Bedingungen zutrifft, wird ein Fehler zurückgegeben:

  • Sie geben eine ungültige table_id
  • Die Tabelle ist nicht volltextindiziert
  • NULL wird für einen Parameter gefunden, der möglicherweise nicht null ist.

Beispiele

Hinweis

In den Beispielen in diesem Abschnitt wird die Production.ProductReview Tabelle der AdventureWorks2022-Beispieldatenbank verwendet. Sie können diesen Index erstellen, indem Sie das für die ProductReview Tabelle in CREATE FULLTEXT INDEX (Transact-SQL) bereitgestellte Beispiel ausführen.

.A Abrufen aller Key- und DocId-Werte

Im folgenden Beispiel wird eine DECLARE-Anweisung verwendet, @table_id um eine lokale Variable zu erstellen und die ID der ProductReview Tabelle als Wert zuzuweisen. Im Beispiel wird sp_fulltext_keymappings die Angabe @table_id für den parameter table_id ausgeführt.

Hinweis

Die Verwendung sp_fulltext_keymappings mit nur dem parameter table_id eignet sich für kleine Tabellen.

USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

In diesem Beispiel werden alle DocIds und Volltextschlüssel folgendermaßen von der Tabelle zurückgegeben:

TABLE Docid Schlüssel
1 1 1
2 2 2
3 3 3
4 4 4

B. Abrufen des DocId-Werts für einen bestimmten Schlüsselwert

Im folgenden Beispiel wird eine DECLARE-Anweisung verwendet, um die lokale Variable @table_idzu erstellen und ihr die ID der ProductReview -Tabelle als Wert zuzuweisen. Im Beispiel wird sp_fulltext_keymappings die Angabe @table_id des table_id Parameters, NULL für den docId-Parameter und 4 für den Schlüsselparameter ausgeführt.

Hinweis

Wird sp_fulltext_keymappings nur mit dem table_id Parameteris verwendet, die für kleine Tabellen geeignet sind.

USE AdventureWorks2022;
GO

DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Dieses Beispiel gibt die folgenden Ergebnisse zurück:

TABLE Docid Schlüssel
4 4 4