Sdílet prostřednictvím


sp_fulltext_keymappings (Transact-SQL)

platí pro:SQL Serverazure SQL Managed InstanceAnalytics Platform System (PDW)

Vrátí mapování mezi identifikátory dokumentu (DocIds) a hodnotami fulltextového klíče. Sloupec DocId obsahuje hodnoty pro bigint celé číslo, které se mapuje na konkrétní hodnotu fulltextového klíče v indexované tabulce s fulltextem. Hodnoty DocId, které vyhovují hledané podmínce, se předávají z modulu Full-Text do databázového stroje, kde se mapují na hodnoty fulltextového klíče ze základní tabulky, na kterou se dotazuje. Sloupec fulltextového klíče je jedinečný index, který se vyžaduje v jednom sloupci tabulky.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

table_id

ID objektu fulltextové indexované tabulky. Pokud zadáte neplatnou table_id, vrátí se chyba. Informace o získání ID objektu tabulky naleznete v tématu OBJECT_ID.

docId

Interní identifikátor dokumentu (DocId), který odpovídá hodnotě klíče. Neplatná hodnota docId nevrací žádné výsledky.

klíč

Hodnota fulltextového klíče ze zadané tabulky. Neplatná hodnota klíče nevrací žádné výsledky. Informace o hodnotách fulltextového klíče najdete v tématu Vytvoření a správa fulltextových indexů.

Návratové hodnoty kódu

Žádný.

Sada výsledků

Název sloupce Datový typ Popis
DocId bigint Sloupec interního identifikátoru dokumentu (DocId), který odpovídá hodnotě klíče.
Key 1 Hodnota fulltextového klíče ze zadané tabulky.

Pokud v tabulce mapování neexistují žádné fulltextové klíče, vrátí se prázdná sada řádků.

1 Datový typ pro klíč je stejný jako datový typ sloupce fulltextového klíče v základní tabulce.

Dovolení

Tato funkce je veřejná a nevyžaduje žádná zvláštní oprávnění.

Poznámky

Následující tabulka popisuje účinek použití jednoho, dvou nebo tří parametrů.

Tento seznam parametrů... Má tento výsledek...
table_id Při vyvolání pouze s parametrem table_id, sp_fulltext_keymappings vrátí všechny hodnoty fulltextového klíče (Klíče) ze zadané základní tabulky spolu s Identifikátorem DocId, který odpovídá každému klíči. To zahrnuje klíče, které čekají na odstranění.

Tato funkce je užitečná pro řešení různých problémů. Je užitečné vidět obsah fulltextového indexu, když vybraný fulltextový klíč není celočíselným datovým typem. To zahrnuje spojení výsledků sp_fulltext_keymappings s výsledky sys.dm_fts_index_keywords_by_document. Další informace najdete v tématu sys.dm_fts_index_keywords_by_document.

Obecně však doporučujeme, abyste v případě potřeby spustili sp_fulltext_keymappings s parametry, které určují konkrétní fulltextový klíč nebo DocId. To je mnohem efektivnější než vrácení celé klíčové mapy, zejména pro velkou tabulku, pro kterou můžou být zásadní náklady na výkon při vrácení celé mapy klíčů.
table_id, docId Pokud jsou zadány pouze table_id a docId, docId musí mít hodnotu non-NULL a v zadané tabulce zadat platné ID docId. Tato funkce je užitečná k izolaci vlastního fulltextového klíče od základní tabulky, která odpovídá Identifikátoru DocId konkrétního fulltextového indexu.
table_id, NULL, klíč Pokud existují tři parametry, musí být druhý parametr NULLa klíč musí být nenulový a zadat platnou hodnotu fulltextového klíče ze zadané tabulky. Tato funkce je užitečná při izolování Identifikátoru DocId, který odpovídá určitému fulltextovém klíči ze základní tabulky.

Za některé z následujících podmínek se vrátí chyba:

  • Zadáte neplatný table_id.
  • Tabulka není indexovaná jako fulltext.
  • NULL je zjištěn parametr, který může být nenulový.

Příklady

Poznámka

Příklady v této části používají tabulku Production.ProductReview ukázkové databáze AdventureWorks2022. Tento index můžete vytvořit spuštěním příkladu pro tabulku ProductReview v CREATE FULLTEXT INDEX.

A. Získání všech hodnot Key a DocId

Následující příklad používá příkaz DECLARE @local_variable k vytvoření místní proměnné, @table_id a přiřazení ID ProductReview tabulky jako její hodnoty. Příklad se spustí sp_fulltext_keymappings určení @table_id parametru table_id.

Poznámka

Použití sp_fulltext_keymappings pouze s parametrem table_id je vhodné pro malé tabulky.

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

Tento příklad vrátí všechny Identifikátory DocId a fulltextové klíče z tabulky následujícím způsobem:

STŮL docId klíč
1 1 1
2 2 2
3 3 3
4 4 4

B. Získání hodnoty DocId pro konkrétní hodnotu klíče

Následující příklad používá příkaz DECLARE k vytvoření místní proměnné, @table_ida k přiřazení ID ProductReview tabulky jako jeho hodnoty. Příklad spustí sp_fulltext_keymappings zadání @table_id parametru table_id, NULL parametru docId a 4 pro parametr klíč.

Poznámka

Použití sp_fulltext_keymappings pouze s parametrem table_id je vhodné pro malé tabulky.

USE AdventureWorks2022;
GO

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

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Tento příklad vrátí následující výsledky.

STŮL docId klíč
4 4 4