Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
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.
Syntax
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_idint. Jika Anda menentukan 'NULL', tidak ada daftar berhenti yang digunakan. Jika Anda menentukan 0, sistem STOPLIST akan 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. |
Note
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 |
|---|---|---|
keyword
1 |
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 dengan output yang ditampilkan oleh tampilan manajemen dinamis lainnya yang menampilkan konten indeks teks lengkap, seperti sys.dm_fts_index_keywords dan sys.dm_fts_index_keywords_by_document. |
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 berikut group_id dalam bahasa Inggris:1: Server2: DB3: 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 berikut phrase_id dalam bahasa Inggris:1 untuk multi1 untuk million2 untuk multimillion |
occurrence |
int | Menunjukkan urutan setiap istilah dalam hasil penguraian. Misalnya, untuk kemunculan frasa SQL Server query processor akan berisi nilai kemunculan berikut untuk istilah dalam frasa, dalam bahasa Inggris:1 untuk SQL2 untuk Server3 untuk query4 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_termwordword breakers
untuk display_termbreakersstemmers
untuk display_termstemmers |
10xFF mewakili karakter khusus yang menunjukkan akhir file atau himpunan data.
Keterangan
sys.dm_fts_parsermendukung 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 menggunakan kolase database yang Anda sambungkan, 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 suatu istilah adalah kata henti untuk bahasa tertentu tergantung pada apakah itu ada dalam daftar berhenti 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 stemmer mengurai istilah kueri dan bentuk stemingnya, dengan menentukan kueri atau
CONTAINSCONTAINSTABLEyang berisi klausa berikutFORMSOF: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.
Permissions
Memerlukan CREATE FULLTEXT CATALOG izin, dan hak akses ke daftar penghentian yang ditentukan.
Examples
A. 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);
Konten terkait
- Tampilan dan fungsi manajemen dinamis pencarian teks lengkap dan semantik
- Pencarian Teks Lengkap
- Securables
- Mengonfigurasi dan mengelola pemecah kata dan stemmer
- Mengonfigurasi dan Mengelola File Tesaurus untuk Pencarian Teks Lengkap
- Mengonfigurasi dan mengelola kata henti dan daftar kata henti untuk Pencarian Teks Lengkap
- Kueri dengan Pencarian Teks Lengkap