Bagikan melalui


sys.dm_fts_index_keywords_by_property (T-SQL)

Berlaku untuk: SQL Server

Mengembalikan semua konten terkait properti dalam indeks teks lengkap tabel tertentu. Ini termasuk semua data milik properti apa pun yang terdaftar oleh daftar properti pencarian yang terkait dengan indeks teks lengkap tersebut.

sys.dm_fts_index_keywords_by_property adalah fungsi manajemen dinamis yang memungkinkan Anda melihat properti terdaftar apa yang dipancarkan oleh IFilters pada waktu indeks, serta konten yang tepat dari setiap properti di setiap dokumen terindeks.

Untuk menampilkan semua konten tingkat dokumen (termasuk konten terkait properti)

Untuk melihat informasi indeks teks lengkap tingkat lebih tinggi

Catatan

Untuk informasi tentang daftar properti pencarian, lihat Properti Dokumen Pencarian dengan Daftar Properti Pencarian.

Sintaks

  
sys.dm_fts_index_keywords_by_property  
(   
    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_property 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.
property_id int ID properti internal properti pencarian dalam indeks teks lengkap tabel yang Anda tentukan dalam parameter OBJECT_ID('table_name').

Ketika properti tertentu ditambahkan ke daftar properti pencarian, Mesin Teks-Penuh mendaftarkan properti dan menetapkannya ID properti internal yang khusus untuk daftar properti tersebut. ID properti internal, yang merupakan bilangan bulat, unik untuk daftar properti pencarian tertentu. Jika properti tertentu terdaftar untuk beberapa daftar properti pencarian, ID properti internal yang berbeda mungkin ditetapkan untuk setiap daftar properti pencarian.

Catatan: ID properti internal berbeda dari pengidentifikasi bilangan bulat properti yang ditentukan saat menambahkan properti ke daftar properti pencarian. Untuk informasi selengkapnya, lihat Properti Dokumen Pencarian dengan Daftar Properti Pencarian.

Untuk melihat kaitan antara property_id dan nama properti:
sys.registered_search_properties (T-SQL)

Keterangan

Tampilan manajemen dinamis ini dapat menjawab pertanyaan seperti berikut ini:

  • Konten apa yang disimpan pada properti tertentu untuk DocID tertentu?

  • Seberapa umum properti tertentu di antara dokumen terindeks?

  • Dokumen apa yang sebenarnya berisi properti tertentu? Ini berguna jika kueri pada properti pencarian tertentu tidak mengembalikan dokumen yang anda harapkan untuk ditemukan.

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_property, 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_property 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_property   
   ( @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

Contoh berikut mengembalikan kata kunci dari Author properti dalam indeks Production.Document teks lengkap tabel AdventureWorks database sampel. Contoh menggunakan alias KWBPOP untuk tabel yang dikembalikan oleh sys.dm_fts_index_keywords_by_property. Contoh menggunakan gabungan dalam untuk menggabungkan kolom dari sys.registered_search_properties dan sys.fulltext_indexes.

-- Once the full-text index is configured to support property searching  
-- on the Author property, return any keywords indexed for this property.  
USE AdventureWorks2022;  
GO   
SELECT KWBPOP.* FROM   
   sys.dm_fts_index_keywords_by_property( DB_ID(),   
   object_id('Production.Document') ) AS KWBPOP  
   INNER JOIN  
      sys.registered_search_properties AS RSP ON(   
         (KWBPOP.property_id = RSP.property_id)   
         AND (RSP.property_name = 'Author') )  
   INNER JOIN  
      sys.fulltext_indexes AS FTI ON(   
         (FTI.[object_id] = object_id('Production.Document'))   
         AND (RSP.property_list_id = FTI.property_list_id) );  
GO  

Lihat Juga

Pencarian Teks Lengkap
Meningkatkan Performa Indeks Teks Lengkap
sp_fulltext_keymappings (T-SQL)
sys.dm_fts_index_keywords_by_document (T-SQL)
sys.dm_fts_index_keywords (T-SQL)
sys.registered_search_properties (T-SQL)
sys.registered_search_property_lists (T-SQL)
Cari Properti Dokumen dengan Daftar Properti Pencarian