Dela via


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