Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Managed Instance
Analitik Platform Sistemi (PDW)
Belirtilen tabloyla ilişkili tam metin indeksin belge düzeyindeki içeriği hakkında bilgi döndürür.
sys.dm_fts_index_keywords_by_document dinamik bir yönetim fonksiyonudur.
Daha üst düzey tam metin indeks bilgilerini görüntülemek için
Bir belge özelliğiyle ilgili mülk düzeyindeki içerik hakkında bilgi görüntülemek için
Sözdizimi
sys.dm_fts_index_keywords_by_document
(
DB_ID('database_name'), OBJECT_ID('table_name')
)
Arguments
db_id('database_name')
DB_ID() fonksiyonuna bir çağrı. Bu fonksiyon, bir veritabanı adını kabul eder ve sys.dm_fts_index_keywords_by_document belirtilen veritabanını bulmak için kullandığı veritabanı kimliğini döndürür.
database_name atlanırsa, mevcut veritabanı kimliği döner.
object_id('table_name')
OBJECT_ID() fonksiyonuna bir çağrı. Bu fonksiyon, bir tablo adını kabul eder ve incelemek için tam metin indeksi içeren tablonun tablo ID'sini döndürür.
Döndürülen Tablo
| Köşe yazısı | Veri türü | Description |
|---|---|---|
| anahtar sözcük | nvarchar(4000) | Anahtar kelimenin tam metin indeksinde saklanan onaltılık temsili. Not: OxFF, bir dosyanın veya veri setinin sonunu gösteren özel karakteri temsil eder. |
| display_term | nvarchar(4000) | Anahtar kelimenin insan tarafından okunabilir formatı. Bu format, tam metin indeksinde saklanan dahili formattan türetilmiştir. Not: OxFF, bir dosyanın veya veri setinin sonunu gösteren özel karakteri temsil eder. |
| column_id | int | Mevcut anahtar kelimenin tam metin olarak indekslendiği sütunun kimliği. |
| document_id | int | Mevcut terimin tam metin olarak indekslendiği belge veya satırın kimliği. Bu ID, o belgenin veya satırın tam metin anahtar değerine karşılık gelir. |
| occurrence_count | int | Belgede veya satırda mevcut anahtar kelimenin document_id ile belirtilen sayısı. 'search_property_name' belirtildiğinde, occurrence_count yalnızca belge veya satır içindeki belirli arama özelliğinde mevcut anahtar kelimenin karşılaşma sayısını gösterir. |
Açıklamalar
sys.dm_fts_index_keywords_by_document tarafından verilen bilgiler, aşağıdakileri öğrenmek için faydalıdır, diğer şeylerin yanı sıra:
Tam metin indeksin içerdiği toplam anahtar kelime sayısı.
Anahtar kelimenin belirli bir belgenin veya satırın parçası olup olmadığı.
Bir anahtar kelimenin tüm tam metin indeksinde kaç kez göründüğü; Yani:
(SUM(occurrence_count) ANAHTAR KELIME= NEREDEkeyword_value)
Bir anahtar kelimenin bir belgede veya satırda kaç kez göründüğü.
Bir belge veya satırda kaç anahtar kelime içerdiği.
Ayrıca, sys.dm_fts_index_keywords_by_document tarafından sağlanan bilgileri kullanarak belirli bir belgeye veya satıra ait tüm anahtar kelimeleri alabilirsiniz.
Tam metin anahtar sütunu önerilen gibi tam sayı veri tipi olduğunda, document_id doğrudan temel tablodaki tam metin anahtar değerine eşlenir.
Buna karşılık, tam metin anahtar sütunu tam sayı olmayan bir veri tipi kullandığında, document_id taban tabloda tam metin anahtarı temsil etmez. Bu durumda, dm_fts_index_keywords_by_document tarafından döndürülen temel tablodaki satırı tanımlamak için, bu görünümü sp_fulltext_keymappings tarafından verilen sonuçlarla birleştirmeniz gerekir. Onlara katılmadan önce, depolanan prosedürün çıktısını bir geçici tabloda depolamalısınız. Sonra dm_fts_index_keywords_by_document'in document_id sütununu bu saklanan prosedür tarafından döndürülen DocId sütunuyla birleştirebilirsiniz. Bir zaman damgası sütununun değerleri ekleme zamanında alamaz, çünkü bunlar SQL Server tarafından otomatik olarak üretilir. Bu nedenle, zaman damgası sütunu varbinary(8) sütunlara dönüştürülmelidir. Aşağıdaki örnek bu adımları göstermektedir. Bu örnekte, table_id tablonuzun kimliği, database_name veritabanınızın adı ve table_name tablonuzun adıdır.
USE database_name;
GO
CREATE TABLE #MyTempTable
(
docid INT PRIMARY KEY ,
[key] INT NOT NULL
);
DECLARE @db_id int = db_id(N'database_name');
DECLARE @table_id int = OBJECT_ID(N'table_name');
INSERT INTO #MyTempTable EXEC sp_fulltext_keymappings @table_id;
SELECT * FROM sys.dm_fts_index_keywords_by_document
( @db_id, @table_id ) kbd
INNER JOIN #MyTempTable tt ON tt.[docid]=kbd.document_id;
GO
Permissions
Tam metin dizini ve CREATE FULL TEXT CATALOG izinleriyle kaplanan sütunlarda SELECT izni gerektirir.
Örnekler
A. Belge düzeyinde tam metin indeks içeriğinin görüntülenmesi
Aşağıdaki örnek, örnek veritabanı tablosunda AdventureWorks2025 belge HumanResources.JobCandidate düzeyinde tam metin indeksin içeriğini gösterir.
Uyarı
Bu indeksi, tablo için verilen örneği CREATE FULL TEXT INDEX (Transact-SQL) bölümünde çalıştırarak HumanResources.JobCandidate oluşturabilirsiniz.
SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),
object_id('HumanResources.JobCandidate'));
GO
Ayrıca Bkz.
Full-Text Arama ve Anlamsal Arama Dinamik Yönetim Görünümleri ve Fonksiyonları (Transact-SQL)
Tam Metin Araması
sys.dm_fts_index_keywords (Transact-SQL)
sys.dm_fts_index_keywords_by_property (Transact-SQL)
sp_fulltext_keymappings (Transact-SQL)
Full-Text Endekslerinin Performansını Artırmak