Saat membuat indeks teks penuh di AnalyticDB for MySQL, Anda dapat menggunakan entitas dan kata-kata penghenti untuk menyesuaikan hasil segmentasi sesuai dengan skenario bisnis aktual. AnalyticDB for MySQL menyediakan kamus kustom untuk menerapkan entitas dan kata-kata penghenti.
Prasyarat
Untuk membuat atau memperbarui kamus kustom, Anda harus memiliki izin DDL dan DML pada kamus tersebut.
Untuk menggunakan kamus kustom, Anda harus memiliki izin SELECT pada kamus tersebut.
Ikhtisar
Kamus kustom adalah sebuah tabel yang mendukung operasi baca dan tulis seperti halnya tabel biasa. Data yang ditulis ke kamus kustom berlaku secara real-time.
Batasan
Anda tidak dapat melakukan perubahan DDL pada kamus kustom.
Operasi UPDATE atau TRUNCATE tidak didukung pada kamus kustom.
Kamus kustom harus digunakan bersama dengan indeks teks penuh.
Sebelum menghapus indeks teks penuh, Anda harus terlebih dahulu menghapus kamus kustom yang terkait.
Hanya satu kamus kustom yang dapat dibuat untuk setiap kluster. Untuk membuat beberapa kamus kustom, hubungi dukungan teknis.
Secara default, kamus kustom mendukung maksimal 10.000 entri. Untuk meningkatkan batas ini, hubungi dukungan teknis.
Membuat kamus kustom
Sintaksis
Gunakan sintaksis berikut untuk membuat kamus kustom di AnalyticDB for MySQL:
CREATE TABLE [IF NOT EXISTS] table_name (
`value` VARCHAR NOT NULL COMMENT 'komentar_kolom',
`type` VARCHAR NOT NULL [DEFAULT 'main|stop' COMMENT 'komentar_kolom'],
PRIMARY KEY (`value`,`type`)
) COMMENT 'komentar_tabel'
FULLTEXT_DICT = 'Y',
INDEX_ALL = 'Y|N'Kendala
Kamus kustom hanya dapat berisi dua bidang: value dan type.
Bidang value dan type bertipe VARCHAR dan tidak boleh kosong.
Kunci utama dari kamus harus mencakup kedua bidang value dan type.
Parameter
table_name: Nama tabel, dengan panjang antara 1 hingga 127 karakter. Nama dapat berisi huruf, angka, dan garis bawah (_), serta harus dimulai dengan huruf atau garis bawah (_).
value: Bidang yang menyimpan konten kata. Nama bidang tetap sebagai value.
type: Bidang yang menyimpan tipe kata. Nama bidang tetap sebagai type. Nilai valid:
main (default): Mengidentifikasi entitas dengan makna spesifik dalam teks bahasa alami. Entitas yang ditambahkan ke kamus kustom tidak disegmentasi. Contoh: nama tempat, organisasi, merek, produk, dan model.
stop: Menyaring kata-kata yang tidak diperlukan. Contoh: kata
fromdalam skenario log audit SQL.PentingKata-kata penghenti didukung hanya untuk kluster AnalyticDB for MySQL versi V3.1.4.24 atau lebih baru.
Untuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke konsol AnalyticDB for MySQL dan buka bagian Configuration Information di halaman Cluster Information.
COMMENT: Komentar kolom atau tabel.
FULLTEXT_DICT: Menentukan apakah tabel merupakan tabel kamus. Atur nilainya menjadi
Y.INDEX_ALL: Menentukan apakah akan membuat indeks untuk semua kolom. Nilai valid:
Y: Membuat indeks untuk semua kolom. Jika mesin tabel adalah XUANWU, nilai defaultnya adalah Y. Kami merekomendasikan Anda menggunakan nilai default.N: Membuat indeks hanya untuk kunci utama. Jika mesin tabel adalah XUANWU_V2, nilai defaultnya adalah N. Anda harus secara eksplisit mengatur parameter ini keY. Jika tidak, kesalahan akan terjadi.CatatanUntuk kluster AnalyticDB for MySQL sebelum V3.2.2.0, mesin tabel adalah XUANWU.
Untuk kluster AnalyticDB for MySQL versi V3.2.2.0 atau lebih baru, Anda dapat menjalankan pernyataan
SHOW ADB_CONFIG KEY=RC_DDL_ENGINE_REWRITE_XUANWUV2;untuk menentukan jenis mesin berdasarkan nilai parameterRC_DDL_ENGINE_REWRITE_XUANWUV2. Jika nilainya adalahtrue, mesin tabel default adalah XUANWU_V2. Jika nilainya adalahfalsedan Anda tidak secara eksplisit mengatur mesin tabel ke XUANWU_V2, mesin tabel default adalah XUANWU.
Contoh
Buat tabel kamus kustom bernama tbl_dict_name.
CREATE TABLE tbl_dict_name (
`value` VARCHAR NOT NULL COMMENT 'nilai entitas atau kata penghenti',
`type` VARCHAR NOT NULL [DEFAULT 'main' COMMENT 'main menunjukkan entitas, dan stop menunjukkan kata penghenti. Kata penghenti didukung mulai versi V3.1.4.24.'],
PRIMARY KEY (`value`,`type`)
) COMMENT='tabel kamus Anda'
FULLTEXT_DICT = 'Y',
INDEX_ALL = 'Y';Memperbarui kamus kustom
Operasi INSERT atau DELETE yang dilakukan pada kamus kustom berlaku segera. Data baru yang ditulis ke tabel disegmentasi menggunakan kata-kata terbaru di kamus kustom.
Contoh
Masukkan kata penghenti bernama
and.INSERT INTO `tbl_dict_name` (`value`, `type`) VALUES ('and', 'stop');Hapus kata.
DELETE FROM `tbl_dict_name` WHERE `value` = 'and' AND `type` = 'stop';
Menggunakan kamus kustom
Sintaksis
Gunakan sintaksis berikut untuk menentukan kamus kustom saat membuat indeks teks penuh di tabel melalui pernyataan CREATE TABLE atau ALTER TABLE:
FULLTEXT INDEX idx_name(`column_name`) [ WITH ANALYZER analyzer_name ] [ WITH DICT tbl_dict_name];Parameter
idx_name: Nama indeks teks penuh.
column_name: Nama kolom tempat indeks teks penuh dibuat.
WITH ANALYZER analyzer_name: Analisis. AnalyticDB for MySQL mendukung berbagai analisis. Untuk informasi lebih lanjut, lihat Analisis untuk Indeks Teks Penuh.
WITH DICT tbl_dict_name: Kamus kustom.
Contoh
Buat indeks teks penuh bernama fidx_c pada kolom bertipe VARCHAR bernama content di tabel tbl_fulltext_demo. Gunakan analisis AliNLP bawaan dan kamus kustom bernama tbl_ext_dict.
ALTER TABLE `tbl_fulltext_demo`
ADD FULLTEXT INDEX fidx_c(`content`)
WITH ANALYZER alinlp
WITH DICT `tbl_ext_dict`;