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.
Disarankan menggunakan klaster AnalyticDB for MySQL versi V3.1.4.17 atau yang lebih baru.
Untuk informasi tentang cara memeriksa versi minor dari klaster AnalyticDB for MySQL, lihat Bagaimana saya menanyakan versi klaster AnalyticDB for MySQL?
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 |
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.
|
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
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';Buat indeks teks penuh bernama fidx_k pada kolom
keyworddan tentukan analisis standar.CatatanJika 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;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;