全部产品
Search
文档中心

AnalyticDB:Kamus kustom untuk indeks teks penuh

更新时间:Jul 02, 2025

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 from dalam skenario log audit SQL.

      Penting

      Kata-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 ke Y. Jika tidak, kesalahan akan terjadi.

      Catatan
      • Untuk 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 parameter RC_DDL_ENGINE_REWRITE_XUANWUV2. Jika nilainya adalah true, mesin tabel default adalah XUANWU_V2. Jika nilainya adalah false dan 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`;