sp_fulltext_keymappings (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance Analytics 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.
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 Erstellen und 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_keywords_by_document.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 , Taste |
Wenn drei Parameter vorhanden sind, muss der zweite Parameter sein NULL , 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 bereitgestellte Beispiel ausführen.
A. Abrufen aller Key- und DocId-Werte
Im folgenden Beispiel wird eine DECLARE @local_variable 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_id
zu erstellen und ihr die ID der ProductReview
-Tabelle als Wert zuzuweisen. Im Beispiel wird sp_fulltext_keymappings
für den parameter table_id, NULL
für den docId-Parameter und 4 für den Schlüsselparameter angegeben@table_id
.
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 |