全部产品
Search
文档中心

AnalyticDB:Buat indeks teks penuh

更新时间:Jul 06, 2025

Topik ini menjelaskan cara membuat indeks teks penuh untuk pencarian teks penuh di AnalyticDB for MySQL.

Prasyarat

Klaster AnalyticDB for MySQL versi V3.1.4.9 atau yang lebih baru telah dibuat.

Catatan

Batasan

  • Indeks teks penuh hanya dapat dibuat pada satu kolom setiap kali. Untuk membuat indeks teks penuh pada beberapa kolom, buat indeks terpisah untuk masing-masing kolom.

  • Indeks teks penuh hanya dapat dibuat pada kolom bertipe VARCHAR.

Kebijakan visibilitas

  • Indeks teks penuh AnalyticDB for MySQL tersedia secara real-time untuk data yang baru ditulis.

  • Untuk membuat indeks teks penuh pada data historis, eksekusi pernyataan BUILD TABLE `Nama tabel` force=true;.

Buat indeks teks penuh saat membuat tabel

Sintaks

CREATE TABLE [IF NOT EXISTS] nama_tabel
  ({nama_kolom tipe_kolom [atribut_kolom] [ batasan_kolom ] [COMMENT 'string']
  [FULLTEXT [INDEX|KEY] [nama_indeks] (nama_kolom)] [opsi_indeks]} [, ... ]  )
   atribut_tabel
   [opsi_partisi]
   [AS] ekspresi_query
   COMMENT 'string'

Parameter

Parameter

Deskripsi

nama_tabel

Nama tabel.

Nama tabel harus memiliki panjang 1 hingga 127 karakter dan dapat berisi huruf, angka, dan garis bawah (_). Nama tabel harus dimulai dengan huruf atau garis bawah (_). Tentukan nama tabel dalam format db_name.nama_tabel untuk membedakan tabel yang memiliki nama sama di database yang berbeda.

nama_kolom

Nama kolom yang akan ditambahkan ke tabel.

Nama kolom harus memiliki panjang 1 hingga 127 karakter dan dapat berisi huruf, angka, dan garis bawah (_). Nama kolom harus dimulai dengan huruf atau garis bawah (_).

tipe_kolom

Tipe data kolom. Setidaknya satu kolom harus bertipe VARCHAR.

Untuk informasi lebih lanjut tentang tipe data yang didukung oleh AnalyticDB for MySQL, lihat Tipe data dasar.

atribut_kolom

Atribut kolom. Untuk informasi lebih lanjut tentang atribut kolom yang didukung oleh AnalyticDB for MySQL, lihat CREATE TABLE.

batasan_kolom

Batasan kolom. Untuk informasi lebih lanjut tentang batasan kolom yang didukung oleh AnalyticDB for MySQL, lihat CREATE TABLE.

FULLTEXT

Mendefinisikan indeks teks penuh.

INDEX|KEY

Pengenal kata kunci indeks teks penuh. Bisa INDEX atau KEY.

nama_indeks

Nama indeks teks penuh.

nama_kolom

Nama kolom untuk membuat indeks teks penuh. Kolom tersebut harus bertipe VARCHAR.

opsi_indeks

Menentukan analisis dan kamus kustom yang digunakan untuk indeks teks penuh.

  • WITH ANALYZER nama_analisis: menentukan analisis yang digunakan untuk indeks teks penuh. Untuk informasi lebih lanjut tentang analisis yang didukung oleh AnalyticDB for MySQL, lihat Analisis untuk indeks teks penuh.

  • WITH DICT tbl_dict_nama: menentukan kamus kustom yang digunakan untuk indeks teks penuh. Untuk informasi lebih lanjut tentang kamus kustom yang didukung oleh AnalyticDB for MySQL, lihat Kamus kustom untuk indeks teks penuh.

Contoh

Buat indeks teks penuh pada kolom content saat membuat tabel bernama tbl_fulltext_name.

CREATE TABLE `tbl_fulltext_name` (
  `id` int,
  `content` varchar,
  `keyword` varchar,
  FULLTEXT INDEX fidx_c(`content`),
  PRIMARY KEY (`id`)
) DISTRIBUTED BY HASH(id);

Periksa indeks tabel.

SHOW index from tbl_fulltext_name;

Hasil sampel:

+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table             | Non_unique | Key_name      | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tbl_fulltext_name |          0 | PRIMARY       |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | id_0_idx      |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | keyword_2_idx |            1 | keyword     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | fidx_c        |            1 | content     | A         |           0 |     NULL | NULL   |      | FULLTEXT   |         |               |
+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Buat indeks teks penuh untuk tabel yang ada

Sintaks

ALTER TABLE `nama_tabel` ADD FULLTEXT [INDEX|KEY] nama_indeks (nama_kolom) [opsi_indeks]

Parameter

Untuk informasi lebih lanjut tentang parameter, lihat bagian "Buat indeks teks penuh saat Anda membuat tabel" dari topik ini.

Contoh

  1. Buat tabel bernama tbl_fulltext_name.

    CREATE TABLE `tbl_fulltext_name` (
      `id` int,
      `content` varchar,
      `keyword` varchar,
      FULLTEXT INDEX fidx_c(`content`), 
      PRIMARY KEY (`id`)
    ) DISTRIBUTED BY HASH(id) INDEX_ALL = 'N';
  2. Buat indeks teks penuh bernama fidx_k pada kolom keyword dan tentukan analisis standar.

    Catatan

    Jika tidak ada analisis yang ditentukan, analisis default akan digunakan. Untuk informasi lebih lanjut, lihat Analisis untuk indeks teks penuh.

    ALTER TABLE `tbl_fulltext_name` ADD FULLTEXT INDEX fidx_k(`keyword`) WITH ANALYZER standard;
  3. Untuk membuat indeks teks penuh pada data historis, eksekusi pernyataan berikut. Indeks hanya berlaku setelah tugas BUILD selesai. Waktu yang diperlukan untuk membuat indeks teks penuh bergantung pada jumlah data.

    BUILD TABLE `tbl_fulltext_name` force=true;

Hapus indeks teks penuh

Sintaks

ALTER TABLE nama_tabel DROP FULLTEXT INDEX nama_indeks;

Contoh

Hapus indeks teks penuh fidx_k dari tabel tbl_fulltext_name.

ALTER TABLE `tbl_fulltext_name` DROP FULLTEXT INDEX fidx_k;