sys.dm_fts_index_keywords_by_document (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Mengembalikan informasi tentang konten tingkat dokumen dari indeks teks lengkap yang terkait dengan tabel yang ditentukan.

sys.dm_fts_index_keywords_by_document adalah fungsi manajemen dinamis.

Untuk melihat informasi indeks teks lengkap tingkat lebih tinggi

Untuk melihat informasi tentang konten tingkat properti yang terkait dengan properti dokumen

Sintaks

  
sys.dm_fts_index_keywords_by_document  
(   
    DB_ID('database_name'),     OBJECT_ID('table_name')   
)  

Argumen

db_id('database_name')
Panggilan ke fungsi DB_ID(). Fungsi ini menerima nama database dan mengembalikan ID database, yang sys.dm_fts_index_keywords_by_document gunakan untuk menemukan database yang ditentukan. Jika database_name dihilangkan, ID database saat ini dikembalikan.

object_id('table_name')
Panggilan ke fungsi OBJECT_ID(). Fungsi ini menerima nama tabel dan mengembalikan ID tabel tabel yang berisi indeks teks lengkap untuk diperiksa.

Tabel Dikembalikan

Kolom Jenis data Deskripsi
kata kunci nvarchar(4000) Representasi heksadesimal dari kata kunci yang disimpan di dalam indeks teks lengkap.

Catatan: OxFF mewakili karakter khusus yang menunjukkan akhir file atau himpunan data.
display_term nvarchar(4000) Format kata kunci yang dapat dibaca manusia. Format ini berasal dari format internal yang disimpan dalam indeks teks lengkap.

Catatan: OxFF mewakili karakter khusus yang menunjukkan akhir file atau himpunan data.
column_id int ID kolom tempat kata kunci saat ini diindeks teks lengkap.
document_id int ID dokumen atau baris tempat istilah saat ini diindeks teks lengkap. ID ini sesuai dengan nilai kunci teks lengkap dokumen atau baris tersebut.
occurrence_count int Jumlah kemunculan kata kunci saat ini dalam dokumen atau baris yang ditunjukkan oleh document_id. Ketika 'search_property_name' ditentukan, occurrence_count hanya menampilkan jumlah kemunculan kata kunci saat ini di properti pencarian yang ditentukan dalam dokumen atau baris.

Keterangan

Informasi yang dikembalikan oleh sys.dm_fts_index_keywords_by_document berguna untuk mengetahui hal-hal berikut, antara lain:

  • Jumlah total kata kunci yang dimuat indeks teks lengkap.

  • Apakah kata kunci adalah bagian dari dokumen atau baris tertentu.

  • Berapa kali kata kunci muncul di seluruh indeks teks lengkap; Yaitu:

    (SUM(occurrence_count) WHERE keyword_value kata kunci= )

  • Berapa kali kata kunci muncul dalam dokumen atau baris tertentu.

  • Berapa banyak kata kunci yang berisi dokumen atau baris tertentu.

Selain itu, Anda juga dapat menggunakan informasi yang disediakan oleh sys.dm_fts_index_keywords_by_document untuk mengambil semua kata kunci milik dokumen atau baris tertentu.

Saat kolom kunci teks lengkap adalah jenis data bilangan bulat, seperti yang disarankan, document_id memetakan langsung ke nilai kunci teks lengkap dalam tabel dasar.

Sebaliknya, ketika kolom kunci teks lengkap menggunakan jenis data non-bilangan bulat, document_id tidak mewakili kunci teks lengkap dalam tabel dasar. Dalam hal ini, untuk mengidentifikasi baris dalam tabel dasar yang dikembalikan oleh dm_fts_index_keywords_by_document, Anda perlu menggabungkan tampilan ini dengan hasil yang dikembalikan oleh sp_fulltext_keymappings. Sebelum dapat menggabungkannya, Anda harus menyimpan output prosedur tersimpan dalam tabel sementara. Kemudian Anda dapat menggabungkan kolom document_id dm_fts_index_keywords_by_document dengan kolom DocId yang dikembalikan oleh prosedur tersimpan ini. Perhatikan bahwa kolom tanda waktu tidak dapat menerima nilai pada waktu penyisipan, karena dibuat secara otomatis oleh SQL Server. Oleh karena itu, kolom tanda waktu harus dikonversi ke kolom varbinary(8 ). Contoh berikut menunjukkan langkah-langkah ini. Dalam contoh ini, table_id adalah ID tabel Anda, database_name adalah nama database Anda, dan table_name adalah nama tabel Anda.

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  
  

Izin

Memerlukan izin SELECT pada kolom yang dicakup oleh indeks teks lengkap dan izin CREATE FULLTEXT CATALOG.

Contoh

J. Menampilkan konten indeks teks lengkap di tingkat dokumen

Contoh berikut menampilkan konten indeks teks lengkap di tingkat dokumen dalam HumanResources.JobCandidate tabel AdventureWorks2022 database sampel.

Catatan

Anda dapat membuat indeks ini dengan menjalankan contoh yang disediakan untuk HumanResources.JobCandidate tabel di CREATE FULLTEXT INDEX (Transact-SQL).

SELECT * FROM sys.dm_fts_index_keywords_by_document(db_id('AdventureWorks2022'),   
object_id('HumanResources.JobCandidate'));  
GO  

Lihat Juga

Pencarian Teks Lengkap dan Tampilan dan Fungsi Manajemen Dinamis Pencarian Semantik (Transact-SQL)
Pencarian Teks Lengkap
sys.dm_fts_index_keywords (T-SQL)
sys.dm_fts_index_keywords_by_property (T-SQL)
sp_fulltext_keymappings (T-SQL)
Meningkatkan Performa Indeks Teks Lengkap