sp_fulltext_keymappings (Transact-SQL)
gäller för:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)
Returnerar mappningar mellan dokumentidentifierare (DocIds) och nyckelvärden i fulltext. Kolumnen DocId innehåller värden för en bigint- heltal som mappar till ett visst fulltextnyckelvärde i en indexerad tabell i fulltext. DocId-värden som uppfyller ett sökvillkor skickas från Full-Text Engine till databasmotorn, där de mappas till nyckelvärden i fulltext från bastabellen som efterfrågas. Nyckelkolumnen i fulltext är ett unikt index som krävs för en kolumn i tabellen.
Transact-SQL syntaxkonventioner
Syntax
sp_fulltext_keymappings { table_id | table_id , docId | table_id , NULL , key }
[ ; ]
Argument
table_id
Objekt-ID för den fulltextindexerade tabellen. Om du anger ett ogiltigt table_idreturneras ett fel. Information om hur du hämtar objekt-ID:t för en tabell finns i OBJECT_ID.
docId
En intern dokumentidentifierare (DocId) som motsvarar nyckelvärdet. Ett ogiltigt docId--värde returnerar inga resultat.
nyckel
Nyckelvärdet i fulltext från den angivna tabellen. Ett ogiltigt nyckel värde returnerar inga resultat. Information om nyckelvärden i fulltext finns i Skapa och hantera fulltextindex.
Returnera kodvärden
Ingen.
Resultatuppsättning
Kolumnnamn | Datatyp | Beskrivning |
---|---|---|
DocId |
bigint | En intern dokumentidentifierare (DocId) som motsvarar nyckelvärdet. |
Key |
1 | Nyckelvärdet i fulltext från den angivna tabellen. Om det inte finns några fulltextnycklar i mappningstabellen returneras en tom raduppsättning. |
1 Datatypen för Nyckel är samma som datatypen för nyckelkolumnen med fulltext i bastabellen.
Behörigheter
Den här funktionen är offentlig och kräver inga särskilda behörigheter.
Anmärkningar
I följande tabell beskrivs effekten av att använda en, två eller tre parametrar.
Den här parameterlistan... | Har det här resultatet... |
---|---|
table_id | När den anropas med parametern table_id returnerar sp_fulltext_keymappings alla nyckelvärden (nyckel) i fulltext från den angivna bastabellen, tillsammans med DocId som motsvarar varje nyckel. Detta inkluderar nycklar som väntar på att tas bort.Den här funktionen är användbar för att felsöka olika problem. Det är användbart för att se innehållet i fulltextindexet när den markerade fulltextnyckeln inte är av heltalsdatatyp. Detta innebär att du ansluter resultatet av sp_fulltext_keymappings med resultatet av sys.dm_fts_index_keywords_by_document . Mer information finns i sys.dm_fts_index_keywords_by_document.I allmänhet rekommenderar vi dock att du, om möjligt, kör sp_fulltext_keymappings med parametrar som anger en specifik fulltextnyckel eller DocId. Detta är mycket effektivare än att returnera en hel nyckelkarta, särskilt för en stor tabell där prestandakostnaden för att returnera hela nyckelkartan kan vara betydande. |
table_id, docId | Om endast table_id och docId anges måste docId vara icke-NULL och ange ett giltigt DocId i den angivna tabellen. Den här funktionen är användbar för att isolera den anpassade fulltextnyckeln från bastabellen som motsvarar DocId för ett visst fulltextindex. |
table_id, NULL , nyckel |
Om det finns tre parametrar måste den andra parametern vara NULL , och nyckel måste vara icke-NULL och ange ett giltigt nyckelvärde i fulltext från den angivna tabellen. Den här funktionen är användbar när du isolerar DocId som motsvarar en viss fulltextnyckel från bastabellen. |
Ett fel returneras under något av följande villkor:
- Du anger ett ogiltigt table_id
- Tabellen är inte fulltextindexerad
-
NULL
påträffas för en parameter som kan vara icke-null.
Exempel
Not
Exemplen i det här avsnittet använder Production.ProductReview
-tabellen i AdventureWorks2022-exempeldatabasen. Du kan skapa det här indexet genom att köra exemplet för tabellen ProductReview
i CREATE FULLTEXT INDEX.
A. Hämta alla nyckel- och DocId-värden
I följande exempel används en DECLARE @local_variable-instruktion för att skapa en lokal variabel, @table_id
och tilldela ID:t för tabellen ProductReview
som dess värde. Exemplet kör sp_fulltext_keymappings
anger @table_id
för parametern table_id.
Not
Att använda sp_fulltext_keymappings
med endast parametern table_id är lämpligt för små tabeller.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO
I det här exemplet returneras alla DocIds- och fulltextnycklar från tabellen enligt följande:
BORD | docId | nyckel |
---|---|---|
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
4 |
4 |
4 |
B. Hämta DocId-värdet för ett specifikt nyckelvärde
I följande exempel används en DECLARE-instruktion för att skapa en lokal variabel, @table_id
, och för att tilldela ID:t för tabellen ProductReview
som dess värde. Exemplet kör sp_fulltext_keymappings
anger @table_id
för parametern table_id, NULL
för parametern docId och 4 för parametern nyckel.
Not
Att använda sp_fulltext_keymappings
med endast parametern table_id är lämpligt för små tabeller.
USE AdventureWorks2022;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO
Det här exemplet returnerar följande resultat.
BORD | docId | nyckel |
---|---|---|
4 |
4 |
4 |