sys.dm_fts_parser (T-SQL)
Berlaku untuk:SQL Server
Mengembalikan hasil tokenisasi akhir setelah menerapkan pemecah kata, thesaurus, dan kombinasi daftar henti tertentu ke input string kueri. Hasil tokenisasi setara dengan output Mesin Teks Lengkap untuk string kueri yang ditentukan.
sys.dm_fts_parser
adalah fungsi manajemen dinamis.
Sintaks
sys.dm_fts_parser ( 'query_string' , lcid , stoplist_id , accent_sensitivity )
Argumen
query_string
Kueri yang ingin Anda uraikan. query_string bisa menjadi rantai string yang didukung sintaksIS CONTAINS. Misalnya, Anda dapat menyertakan formulir infleksi, tesaurus, dan operator logis.
Icid
Pengidentifikasi lokal (LCID) pemecah kata yang akan digunakan untuk mengurai query_string.
stoplist_id
ID daftar henti, jika ada, yang akan digunakan oleh pemecah kata yang diidentifikasi oleh lcid. stoplist_id int. Jika Anda menentukan 'NULL', tidak ada daftar henti yang digunakan. Jika Anda menentukan 0, STOPLIST sistem digunakan.
ID daftar henti unik dalam database. Untuk mendapatkan ID daftar henti untuk indeks teks lengkap pada tabel tertentu, gunakan tampilan katalog sys.fulltext_indexes .
accent_sensitivity
Nilai Boolean yang mengontrol apakah pencarian teks lengkap sensitif atau tidak peka terhadap diakritik. accent_sensitivity adalah bit, dengan salah satu nilai berikut:
Nilai | Sensitivitas aksen adalah... |
---|---|
0 | Sensitif Kata-kata seperti "café" dan "café" diperlakukan identik. |
1 | Sensitif Kata-kata seperti "café" dan "café" diperlakukan berbeda. |
Catatan
Untuk melihat pengaturan nilai ini saat ini untuk katalog teks lengkap, jalankan pernyataan Transact-SQL berikut: SELECT fulltextcatalogproperty('<catalog_name>', 'AccentSensitivity');
.
Tabel dikembalikan
Nama kolom | Jenis data | Deskripsi |
---|---|---|
kata kunci | varbinary(128) | Representasi heksadesimal dari kata kunci tertentu yang dikembalikan oleh pemecah kata. Representasi ini digunakan untuk menyimpan kata kunci dalam indeks teks lengkap. Nilai ini tidak dapat dibaca manusia, tetapi berguna untuk menghubungkan kata kunci tertentu untuk output yang dikembalikan oleh tampilan manajemen dinamis lainnya yang mengembalikan konten indeks teks lengkap, seperti sys.dm_fts_index_keywords dan sys.dm_fts_index_keywords_by_document. Catatan: 0xFF mewakili karakter khusus yang menunjukkan akhir file atau himpunan data. |
group_id | int | Berisi nilai bilangan bulat yang berguna untuk membedakan grup logis tempat istilah tertentu dihasilkan. Misalnya, 'Server AND DB OR FORMSOF(THESAURUS, DB)" ' menghasilkan nilai group_id berikut dalam bahasa Inggris:1: Server 2: DB 3: DB |
phrase_id | int | Berisi nilai bilangan bulat yang berguna untuk membedakan kasus di mana bentuk alternatif kata majemuk, seperti teks lengkap, dikeluarkan oleh pemecah kata. Terkadang, dengan adanya kata majemuk ('multi-juta'), bentuk alternatif dikeluarkan oleh pemecah kata. Bentuk alternatif (frasa) ini terkadang perlu dibingkai. Misalnya, ' multi-million ' menghasilkan nilai phrase_id berikut dalam bahasa Inggris:1 untuk multi 1 untuk million 2 untuk multimillion |
kemunculan | int | Menunjukkan urutan setiap istilah dalam hasil penguraian. Misalnya, untuk frasa "SQL Server query processor " kemunculan akan berisi nilai kemunculan berikut untuk istilah dalam frasa, dalam bahasa Inggris:1 untuk SQL 2 untuk Server 3 untuk query 4 untuk processor |
special_term | nvarchar(4000) | Berisi informasi tentang karakteristik istilah yang dikeluarkan oleh pemecah kata, salah satu dari: - Kecocokan persis - Kata kebisingan - Akhir Kalimat - Akhir paragraf - Akhir Bab |
display_term | nvarchar(4000) | Berisi bentuk kata kunci yang dapat dibaca manusia. Seperti halnya fungsi yang dirancang untuk mengakses konten indeks teks lengkap, istilah yang ditampilkan ini mungkin tidak identik dengan istilah asli karena batasan denormalisasi. Namun, seharusnya cukup tepat untuk membantu Anda mengidentifikasinya dari input asli. |
expansion_type | int | Berisi informasi tentang sifat perluasan istilah tertentu, salah satu dari: 0 = Kasus kata tunggal 2 = Ekspansi infleksi 4 = Ekspansi/penggantian Thesaurus Misalnya, pertimbangkan kasus di mana tesaurus mendefinisikan eksekusi sebagai perluasan dari jog :<expansion> <sub>run</sub> <sub>jog</sub> </expansion> Istilah FORMSOF (FREETEXT, run) ini menghasilkan output berikut:run dengan expansion_type = 0runs dengan expansion_type = 2running dengan expansion_type = 2ran dengan expansion_type = 2jog dengan expansion_type = 4 |
source_term | nvarchar(4000) | Istilah atau frasa tempat istilah tertentu dihasilkan atau diurai. Misalnya, kueri tentang '"word breakers" AND stemmers' menghasilkan nilai source_term berikut dalam bahasa Inggris:word breakers untuk display_termword word breakers untuk display_termbreakers stemmers untuk display_termstemmers |
Keterangan
sys.dm_fts_parser
mendukung sintaksis dan fitur predikat teks lengkap, seperti CONTAINS dan FREETEXT, dan fungsi, seperti CONTAINSTABLE dan FREETEXTTABLE.
Menggunakan Unicode untuk mengurai karakter khusus
Saat Anda mengurai string kueri, sys.dm_fts_parser
gunakan kolase database tempat Anda tersambung, kecuali Anda menentukan string kueri sebagai Unicode. Oleh karena itu, untuk string non-Unicode yang berisi karakter khusus, seperti ü atau ç, output mungkin tidak terduga, tergantung pada kolase database. Untuk memproses string kueri secara independen dari kolase database, awali string dengan N
, yaitu, N'
query_string'
.
Untuk informasi selengkapnya, lihat C. Menampilkan output string yang berisi karakter khusus nanti di artikel ini.
Kapan menggunakan sys.dm_fts_parser
sys.dm_fts_parser
dapat sangat kuat untuk tujuan penelusuran kesalahan. Beberapa skenario penggunaan utama meliputi:
Untuk memahami bagaimana pemecah kata tertentu memperlakukan input tertentu
Saat kueri mengembalikan hasil yang tidak terduga, kemungkinan penyebabnya adalah cara pemecah kata mengurai dan memecah data. Dengan menggunakan
sys.dm_fts_parser
, Anda menemukan hasil yang diteruskan pemecah kata ke indeks teks lengkap. Selain itu, Anda dapat melihat istilah mana yang merupakan stopword, yang tidak dicari dalam indeks teks lengkap. Apakah istilah adalah stopword untuk bahasa tertentu bergantung pada apakah istilah tersebut ada dalam daftar henti yang ditentukan oleh nilai stoplist_id yang dideklarasikan dalam fungsi.Bendera sensitivitas aksen memungkinkan Anda melihat bagaimana pemecah kata mengurai input, mengingat informasi sensitivitas aksennya.
Untuk memahami cara kerja stemmer pada input tertentu
Anda dapat mengetahui bagaimana pemecah kata dan pemecah kata mengurai istilah kueri dan bentuk stemming-nya, dengan menentukan kueri CONTAINS atau CONTAINSTABLE yang berisi klausul FORMSOF berikut:
FORMSOF( INFLECTIONAL, query_term )
Hasilnya memberi tahu Anda istilah apa yang diteruskan ke indeks teks lengkap.
Untuk memahami bagaimana tesaurus memperluas atau mengganti semua atau sebagian input
Anda juga dapat menentukan:
FORMSOF( THESAURUS, query_term )
Hasil kueri ini memperlihatkan bagaimana pemecah kata dan tesaurus berinteraksi untuk istilah kueri. Anda dapat melihat ekspansi atau penggantian dari thesaurus dan mengidentifikasi kueri yang dihasilkan yang benar-benar dikeluarkan terhadap indeks teks lengkap.
Jika pengguna bermasalah:
FORMSOF( FREETEXT, query_term )
Kemampuan inflectional dan Thesaurus berlangsung secara otomatis.
Selain skenario penggunaan sebelumnya, sys.dm_fts_parser
dapat membantu secara signifikan memahami dan memecahkan masalah lain dengan kueri teks lengkap.
Izin
Memerlukan izin CREATE FULLTEXT CATALOG, dan hak akses ke daftar henti yang ditentukan.
Contoh
J. Menampilkan output pemecah kata tertentu untuk kata kunci atau frasa
Contoh berikut mengembalikan output dari menggunakan pemecah kata bahasa Inggris, yang LCID-nya adalah 1033, dan tidak ada daftar berhenti pada string kueri berikut:
The Microsoft business analysis
Sensitivitas aksen dinonaktifkan.
SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis" ', 1033, 0, 0);
B. Menampilkan output pemecah kata tertentu dalam konteks pemfilteran daftar henti
Contoh berikut mengembalikan output dari menggunakan pemecah kata bahasa Inggris, yang LCID-nya adalah 1033, dan daftar henti bahasa Inggris, yang ID-nya adalah 77, pada string kueri berikut:
"The Microsoft business analysis" OR "MS revenue"
Sensitivitas aksen dinonaktifkan.
SELECT * FROM sys.dm_fts_parser (' "The Microsoft business analysis" OR " MS revenue" ', 1033, 77, 0);
C. Menampilkan output string yang berisi karakter khusus
Contoh berikut menggunakan Unicode untuk mengurai string Prancis berikut:
français
Contoh menentukan LCID untuk bahasa Prancis, 1036
, dan ID daftar henti yang ditentukan pengguna, 5
. Sensitivitas aksen diaktifkan.
SELECT * FROM sys.dm_fts_parser(N'français', 1036, 5, 1);
Baca juga
- Pencarian Teks Lengkap dan Tampilan dan Fungsi Manajemen Dinamis Pencarian Semantik (Transact-SQL)
- Pencarian Teks Lengkap
- Securable
Langkah berikutnya
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk