Udostępnij za pośrednictwem


sp_fulltext_keymappings (Transact-SQL)

Dotyczy:PROGRAMU SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Zwraca mapowania między identyfikatorami dokumentów (DocId) i wartościami klucza pełnotekstowego. Kolumna DocId zawiera wartości dla bigint liczby całkowitej, która jest mapowana na określoną wartość klucza pełnotekstowego w tabeli indeksowanej pełnotekstowo. Wartości DocId spełniające warunek wyszukiwania są przekazywane z aparatu Full-Text do aparatu bazy danych, gdzie są mapowane na wartości klucza pełnotekstowego z tabeli bazowej, której dotyczy zapytanie. Kolumna klucza pełnotekstowego jest unikatowym indeksem wymaganym w jednej kolumnie tabeli.

Transact-SQL konwencje składni

Składnia

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

Argumenty

table_id

Identyfikator obiektu indeksowanej tabeli pełnotekstowej. Jeśli określisz nieprawidłową table_id, zostanie zwrócony błąd. Aby uzyskać informacje na temat uzyskiwania identyfikatora obiektu tabeli, zobacz OBJECT_ID.

docId

Wewnętrzny identyfikator dokumentu (DocId), który odpowiada wartości klucza. Nieprawidłowa wartość docId nie zwraca żadnych wyników.

klucza

Wartość klucza pełnotekstowego z określonej tabeli. Nieprawidłowa wartość klucza nie zwraca żadnych wyników. Aby uzyskać informacje o wartościach klucza pełnotekstowego, zobacz Tworzenie indeksów pełnotekstowych i zarządzanie nimi.

Zwracanie wartości kodu

Żaden.

Zestaw wyników

Nazwa kolumny Typ danych Opis
DocId bigint Wewnętrzna kolumna identyfikatora dokumentu (DocId), która odpowiada wartości klucza.
Key 1 Wartość klucza pełnotekstowego z określonej tabeli.

Jeśli w tabeli mapowania nie istnieją żadne klucze pełnotekstowe, zwracany jest pusty zestaw wierszy.

1 Typ danych klucza jest taki sam jak typ danych kolumny klucza pełnotekstowego w tabeli bazowej.

Uprawnienia

Ta funkcja jest publiczna i nie wymaga żadnych specjalnych uprawnień.

Uwagi

W poniższej tabeli opisano efekt użycia jednego, dwóch lub trzech parametrów.

Ta lista parametrów... Ma ten wynik...
table_id Po wywołaniu tylko z parametrem table_idsp_fulltext_keymappings zwraca wszystkie wartości klucza pełnotekstowego (klucz) z określonej tabeli bazowej wraz z identyfikatorem DocId odpowiadającym każdemu kluczowi. Obejmuje to klucze oczekujące na usunięcie.

Ta funkcja jest przydatna do rozwiązywania różnych problemów. Warto zobaczyć zawartość indeksu pełnotekstowego, gdy wybrany klucz pełnotekstowy nie jest typu danych całkowitych. Obejmuje to dołączenie wyników sp_fulltext_keymappings z wynikami sys.dm_fts_index_keywords_by_document. Aby uzyskać więcej informacji, zobacz sys.dm_fts_index_keywords_by_document.

Ogólnie jednak zalecamy wykonanie sp_fulltext_keymappings z parametrami określającymi określony klucz pełnotekstowy lub DocId. Jest to znacznie bardziej wydajne niż zwracanie całej mapy kluczy, zwłaszcza w przypadku dużej tabeli, dla której koszt wydajności zwracania całej mapy kluczy może być istotny.
table_id, docId Jeśli określono tylko identyfikator table_id i docId, identyfikator docId musi być inny niż NULL i określić prawidłowy identyfikator DocId w określonej tabeli. Ta funkcja jest przydatna do izolowania niestandardowego klucza pełnotekstowego z tabeli podstawowej odpowiadającej identyfikatorowi DocId określonego indeksu pełnotekstowego.
klucza table_id, , Jeśli istnieją trzy parametry, drugi parametr musi być NULL, a klucz musi być inny niż NULL i określić prawidłową wartość klucza pełnotekstowego z określonej tabeli. Ta funkcja jest przydatna w izolowaniu identyfikatora DocId odpowiadającego określonemu kluczowi pełnotekstowemu z tabeli bazowej.

Błąd jest zwracany w dowolnym z następujących warunków:

  • Określono nieprawidłową table_id
  • Tabela nie jest indeksowana pełnotekstowo
  • NULL występuje dla parametru, który może mieć wartość inną niż null.

Przykłady

Nuta

W przykładach w tej sekcji użyto tabeli Production.ProductReview przykładowej bazy danych AdventureWorks2022. Ten indeks można utworzyć, wykonując przykład podany dla tabeli ProductReview w CREATE FULLTEXT INDEX.

A. Uzyskiwanie wszystkich wartości Key i DocId

W poniższym przykładzie użyto instrukcji DECLARE @local_variable, aby utworzyć zmienną lokalną, @table_id i przypisać identyfikator tabeli ProductReview jako jego wartość. W przykładzie jest wykonywane sp_fulltext_keymappings określania @table_id parametru table_id.

Nuta

Używanie sp_fulltext_keymappings tylko z parametrem table_id jest odpowiednie dla małych tabel.

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

W tym przykładzie zwracane są wszystkie identyfikatory DocId i klucze pełnotekstowe z tabeli w następujący sposób:

STÓŁ docId klucz
1 1 1
2 2 2
3 3 3
4 4 4

B. Uzyskiwanie wartości DocId dla określonej wartości klucza

W poniższym przykładzie użyto instrukcji DECLARE, aby utworzyć zmienną lokalną, @table_idi przypisać identyfikator tabeli ProductReview jako jej wartość. W przykładzie jest wykonywane określania parametru table_id, parametru docId i 4 dla parametru klucza .

Nuta

Używanie sp_fulltext_keymappings tylko z parametrem table_id jest odpowiednie dla małych tabel.

USE AdventureWorks2022;
GO

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

EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Ten przykład zwraca następujące wyniki.

STÓŁ docId klucz
4 4 4