Aracılığıyla paylaş


sp_fulltext_keymappings (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen ÖrneğiAnalytics Platform Sistemi (PDW)

Belge tanımlayıcıları (DocIds) ile tam metin anahtar değerleri arasındaki eşlemeleri döndürür. DocId sütunu, bigint tamsayısı için, tam metin dizinli bir tablodaki belirli bir tam metin anahtar değeriyle eşlenen değerler içerir. Bir arama koşulunu karşılayan DocId değerleri, Full-Text Altyapısı'ndan Veritabanı Altyapısı'na geçirilir ve burada sorgulanan temel tablodan tam metin anahtar değerlerine eşlenir. Tam metin anahtarı sütunu, tablonun bir sütununda gerekli olan benzersiz bir dizindir.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Bağımsız değişken

Önemli

Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.

table_id

Tam metin dizinli tablonun nesne kimliği. Geçersiz bir table_idbelirtirseniz bir hata döndürülür. Tablonun nesne kimliğini alma hakkında bilgi için bkz. OBJECT_ID.

docId

Anahtar değerine karşılık gelen iç belge tanımlayıcısı (DocId). Geçersiz docId değeri sonuç döndürmez.

anahtar

Belirtilen tablodan tam metin anahtarı değeri. Geçersiz bir anahtarı değeri sonuç döndürmez. Tam metin anahtarı değerleri hakkında bilgi için bkz.tam metin dizinleri oluşturma ve yönetme .

Dönüş kodu değerleri

Hiç kimse.

Sonuç kümesi

Sütun adı Veri tipi Açıklama
DocId bigint Anahtar değerine karşılık gelen iç belge tanımlayıcısı (DocId) sütunu.
Key 1 Belirtilen tablodan tam metin anahtarı değeri.

Eşleme tablosunda tam metin anahtarı yoksa boş bir satır kümesi döndürülür.

1 Anahtar için veri türü, temel tablodaki tam metin anahtar sütununun veri türüyle aynıdır.

İzinler

Bu işlev geneldir ve özel izin gerektirmez.

Açıklamalar

Aşağıdaki tabloda bir, iki veya üç parametre kullanmanın etkisi açıklanmaktadır.

Bu parametre listesi... Bu sonuç...
table_id Yalnızca table_id parametresiyle çağrıldığında, sp_fulltext_keymappings belirtilen temel tablodan tüm tam metin anahtarı (Anahtar) değerlerini ve her anahtara karşılık gelen DocId değerini döndürür. Bu, silmeyi bekleyen anahtarları içerir.

Bu işlev çeşitli sorunları gidermek için kullanışlıdır. Seçilen tam metin anahtarı bir tamsayı veri türünde olmadığında tam metin dizini içeriğini görmek için kullanışlıdır. Bu, sp_fulltext_keymappings sonuçlarını sys.dm_fts_index_keywords_by_documentsonuçlarıyla birleştirmeyi içerir. Daha fazla bilgi için bkz. sys.dm_fts_index_keywords_by_document.

Ancak genel olarak, mümkünse belirli bir tam metin anahtarı veya DocId belirten parametrelerle sp_fulltext_keymappings yürütmenizi öneririz. Bu, özellikle anahtar eşlemesinin tamamını döndürmenin performans maliyetinin önemli olabileceği büyük bir tablo için anahtar eşlemesinin tamamını döndürmekten çok daha verimlidir.
table_id, docId Yalnızca table_id ve docId belirtilirse, docId NULL olmayan olmalıdır ve belirtilen tabloda geçerli bir DocId belirtmelidir. Bu işlev, özel tam metin anahtarını belirli bir tam metin dizininin DocId'sine karşılık gelen temel tablodan yalıtmak için kullanışlıdır.
table_id, NULLanahtar Üç parametre varsa, ikinci parametre NULLolmalı ve anahtar NULL olmamalıdır ve belirtilen tablodan geçerli bir tam metin anahtar değeri belirtmelidir. Bu işlev, temel tablodan belirli bir tam metin anahtarına karşılık gelen DocId'yi yalıtmada kullanışlıdır.

Aşağıdaki koşullardan herhangi biri altında bir hata döndürülür:

  • Geçersiz bir table_id belirtirsiniz
  • Tablo tam metin dizinli değil
  • null olmayan bir parametre için NULL karşılaşılır.

Örnekler

Not

Bu bölümdeki örnekler AdventureWorks2025 örnek veritabanının tablosunu kullanır Production.ProductReview . create FULLTEXT INDEX tablosu için sağlanan örneği yürüterek bu dizini oluşturabilirsiniz.

A. Tüm Key ve DocId değerlerini alma

Aşağıdaki örnekte yerel değişken oluşturmak, DECLARE @local_variable ve @table_id tablosunun kimliğini değeri olarak atamak için ProductReview deyimi kullanılır. Örnek, sp_fulltext_keymappings parametresi için @table_id belirten yürütür.

Not

sp_fulltext_keymappings yalnızca table_id parametresiyle kullanmak küçük tablolar için uygundur.

USE AdventureWorks2022;
GO

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

EXECUTE sp_fulltext_keymappings @table_id;
GO

Bu örnek, tablodaki tüm DocId'leri ve tam metin anahtarlarını aşağıdaki gibi döndürür:

MASA docId anahtar
1 1 1
2 2 2
3 3 3
4 4 4

B. Belirli bir Anahtar değeri için DocId değerini alma

Aşağıdaki örnekte, @table_idyerel bir değişken oluşturmak ve ProductReview tablosunun kimliğini değeri olarak atamak için BIR DECLARE deyimi kullanılır. Örnek, sp_fulltext_keymappings parametresi için @table_id, docId parametresi için NULL ve anahtar parametresi için 4 belirten yürütür.

Not

sp_fulltext_keymappings yalnızca table_id parametresiyle kullanmak küçük tablolar için uygundur.

USE AdventureWorks2022;
GO

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

EXECUTE sp_fulltext_keymappings @table_id, NULL, 4;
GO

Bu örnek aşağıdaki sonuçları döndürür.

MASA docId anahtar
4 4 4