All Products
Search
Document Center

AnalyticDB:Analyzer untuk indeks teks penuh

Last Updated:Jul 17, 2026

AnalyticDB for MySQL menyediakan enam analyzer bawaan untuk indeks teks penuh: AliNLP, IK, Standard, Ngram, Edge_ngram, dan Pattern. Setiap analyzer menerapkan strategi tokenisasi yang berbeda—pilih sesuai kebutuhan bahasa, pola pencarian (fuzzy, awalan, atau kecocokan eksak), serta apakah Anda memerlukan pemrosesan teks berbahasa Tiongkok.

Pilih analyzer

Analyzer Paling cocok untuk Dukungan bahasa Kamus kustom
AliNLP Tokenisasi berbasis Pemrosesan Bahasa Alami (NLP) untuk teks berbahasa Tiongkok dan multibahasa Bahasa Tionghoa, Inggris, Indonesia, Melayu, Thailand, Vietnam, Prancis, Spanyol Ya
IK Teks berbahasa Tiongkok dengan granularitas yang dapat dikonfigurasi Tiongkok Ya
Standard Teks berbahasa Inggris dengan penyaringan kata henti Aturan spesifik bahasa Ya
Ngram Pencarian substring fuzzy Apa pun Ya
Edge_ngram Pencarian awalan dan pengisian otomatis Apa pun Ya
Pattern Tokenisasi berbasis pembatas kustom melalui ekspresi reguler Apa pun Tidak

Analyzer default berdasarkan versi kluster:

  • Kluster sebelum V3.1.4.15: analyzer AliNLP

  • Kluster V3.1.4.15 atau lebih baru: analyzer IK

Untuk memeriksa versi minor kluster Anda, lihat Bagaimana cara melihat versi minor kluster?

Tentukan analyzer

Sintaks

FULLTEXT INDEX idx_name(`column_name`) [ WITH ANALYZER analyzer_name ] [ WITH DICT tbl_dict_name];

Parameter

Parameter Deskripsi
idx_name Nama indeks teks penuh.
column_name Nama kolom yang akan diindeks.
WITH ANALYZER analyzer_name Analyzer yang digunakan. Abaikan untuk menggunakan analyzer default.
WITH DICT tbl_dict_name Kamus kustom yang diterapkan. Untuk detailnya, lihat Kamus kustom untuk indeks teks penuh.

Contoh

Pernyataan berikut membuat tabel dengan enam indeks teks penuh, satu untuk setiap analyzer:

CREATE TABLE `tbl_fulltext_demo` (
  `id` int,
  `content` varchar,
  `content_alinlp` varchar,
  `content_ik` varchar,
  `content_standard` varchar,
  `content_ngram` varchar,
  `content_edge_ngram` varchar,
  FULLTEXT INDEX fidx_c(`content`),                                           -- Analyzer default
  FULLTEXT INDEX fidx_alinlp(`content_alinlp`) WITH ANALYZER alinlp,
  FULLTEXT INDEX fidx_ik(`content_ik`) WITH ANALYZER ik,
  FULLTEXT INDEX fidx_standard(`content_standard`) WITH ANALYZER standard,
  FULLTEXT INDEX fidx_ngram(`content_ngram`) WITH ANALYZER ngram,
  FULLTEXT INDEX fidx_edge_ngram(`content_edge_ngram`) WITH ANALYZER edge_ngram,
  PRIMARY KEY (`id`)
) DISTRIBUTED BY HASH(id);

Pratinjau hasil tokenisasi

Sebelum menetapkan analyzer, uji cara analyzer tersebut melakukan tokenisasi terhadap teks Anda. Setiap analyzer memiliki fungsi uji khusus yang mengembalikan daftar token untuk string input tertentu.

Tambahkan awalan /*+ mode=two_phase*/ pada semua kueri uji tokenisasi, atau kueri tersebut tidak akan dieksekusi dengan benar.

Contoh berikut menggunakan input yang sama — 'Hello world' — pada semua analyzer sehingga Anda dapat membandingkan output-nya secara langsung:

Analyzer Fungsi uji Output untuk 'Hello world'
AliNLP fulltext_alinlp_test() [hello, , world]
IK fulltext_ik_test() [hello, world, or]
Standard fulltext_standard_test() [hello, world]
Ngram (ukuran token default: 2) fulltext_ngram_test() [he, el, ll, lo, o , w, wo, or, rl, ld]
Edge_ngram (min: 1, max: 2) fulltext_edge_ngram_test() [h, he]

Penggunaan:

/*+ mode=two_phase*/ SELECT fulltext_edge_ngram_test('Hello world');
[hello, world, or]
Analyzer Pattern tidak mendukung pengujian tokenisasi berbasis SQL.

Analyzer AliNLP

Paling cocok untuk teks berbahasa Tiongkok dan multibahasa. Analyzer AliNLP dikembangkan oleh Alibaba Cloud dan Akademi DAMO menggunakan teknologi Pemrosesan Bahasa Alami (NLP). Analyzer ini melakukan tokenisasi teks bahasa alami berurutan menjadi segmen-segmen yang bermakna dan mendukung kamus kustom untuk entitas dan kata henti yang ditentukan pengguna.

Bahasa yang didukung: Tiongkok, Inggris, Indonesia, Melayu, Thailand, Vietnam, Prancis, Spanyol

  • Hasil tokenisasi untuk teks berbahasa Inggris:

    /*+ mode=two_phase*/ SELECT fulltext_alinlp_test('Hello world');

    Hasil:

    [hello,  , world]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

Parameter Deskripsi Default
FULLTEXT_SPLIT_GRANULARITY Granularitas segmentasi. Bilangan bulat dari 2 hingga 8. 2
FULLTEXT_FILTER_ST_CONVERT_ENABLED Mengaktifkan konversi bentuk dasar (misalnya, menman, carscar). false
FULLTEXT_TOKENIZER_CASE_SENSITIVE Apakah tokenisasi peka huruf besar/kecil. false

Analyzer IK

Paling cocok untuk teks berbahasa Tiongkok. Analyzer IK adalah analyzer Tiongkok sumber terbuka yang ringan. Analyzer ini mendukung dua mode segmentasi — granularitas kasar dan granularitas halus — serta menerima kamus kustom untuk entitas dan kata henti.

  • Hasil tokenisasi untuk teks berbahasa Inggris:

    /*+ mode=two_phase*/ SELECT fulltext_ik_test('Hello world');

    Hasil:

    [hello, world, or]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

Parameter Deskripsi Default
CSTORE_IK_SEGMENTER_USE_SMART_ENABLE Mode segmentasi. true = granularitas kasar (mode ik_smart); false = granularitas halus (mode ik_max_word). false
CSTORE_IK_SEGMENTER_LETTER_MIN_LENGTH Panjang segmen minimum. Bilangan bulat dari 2 hingga 16. 3
CSTORE_IK_SEGMENTER_LETTER_MAX_LENGTH Panjang segmen maksimum. Bilangan bulat dari 2 hingga 256. 128

Analyzer Standard

Paling cocok untuk teks berbahasa Inggris. Analyzer Standard menerapkan aturan spesifik bahasa: untuk bahasa Inggris, teks diubah menjadi huruf kecil dan kata henti serta tanda baca dihapus sebelum dilakukan tokenisasi; untuk bahasa Tiongkok, teks dibagi menjadi karakter individual. Analyzer ini mendukung kamus kustom.

  • Hasil tokenisasi untuk teks berbahasa Inggris:

    /*+ mode=two_phase*/ SELECT fulltext_standard_test('Hello world');

    Hasil:

    [hello, world]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

Parameter Deskripsi Default
FULLTEXT_MAX_TOKEN_LENGTH Panjang token maksimum. Bilangan bulat dari 1 hingga 1.048.576. 255

Analyzer Ngram

Paling cocok untuk pencarian substring fuzzy. Analyzer Ngram memecah teks menjadi semua substring yang mungkin dengan panjang tetap, sehingga efektif untuk kueri kecocokan parsial. Analyzer ini mendukung kamus kustom.

  • Hasil tokenisasi untuk teks berbahasa Inggris:

    /*+ mode=two_phase*/ SELECT fulltext_ngram_test('Hello world');

    Hasil:

    [he, el, ll, lo, o ,  w, wo, or, rl, ld]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

Parameter Deskripsi Default
FULLTEXT_NGRAM_TOKEN_SIZE Panjang token. Bilangan bulat dari 1 hingga 8. 2

Analyzer Edge_ngram

Paling cocok untuk pencarian awalan dan pengisian otomatis (search-as-you-type). Analyzer Edge_ngram menghasilkan token awalan dengan panjang yang bertambah — misalnya, h, lalu he — sehingga ideal untuk mencocokkan kata dari awal. Analyzer ini mendukung kamus kustom.

Tips: Edge_ngram bekerja baik ketika istilah pencarian muncul di awal kata. Untuk pencocokan substring fuzzy di mana saja dalam teks, gunakan analyzer Ngram sebagai gantinya.
  • Hasil tokenisasi teks berbahasa Inggris.

    /*+ mode=two_phase*/ SELECT fulltext_edge_ngram_test('Hello world');

    Hasil:

    [h, he]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

Parameter Deskripsi Default
FULLTEXT_MIN_GRAM_SIZE Panjang awalan minimum. Bilangan bulat dari 1 hingga 8. 1
FULLTEXT_MAX_GRAM_SIZE Panjang awalan maksimum. Bilangan bulat dari 1 hingga 16. Harus lebih besar dari FULLTEXT_MIN_GRAM_SIZE. 2

Alat analisis pola

Paling cocok untuk pembatas kustom. Analyzer Pattern melakukan tokenisasi teks dengan membagi berdasarkan pola ekspresi reguler yang Anda tentukan. Analyzer ini tidak mendukung kamus kustom atau pengujian tokenisasi berbasis SQL.

Sintaks

FULLTEXT INDEX fidx_name(`column_name`) WITH ANALYZER pattern_tokenizer("Custom_rule") [ WITH DICT `tbl_dict_name` ];

Custom_rule adalah ekspresi reguler yang menentukan pola pemisahan.

Parameter konfigurasi

Parameter Deskripsi Default
FULLTEXT_TOKENIZER_CASE_SENSITIVE Apakah tokenisasi peka huruf besar/kecil. false

Kelola konfigurasi analyzer

Kueri parameter konfigurasi

Gunakan salah satu metode berikut untuk memeriksa nilai saat ini dari parameter konfigurasi.

Metode 1: `SHOW adb_config`

Mengembalikan nilai default dan nilai yang telah dimodifikasi.

show adb_config key = '<analyzer_param>';

Contoh:

show adb_config key = 'FULLTEXT_NGRAM_TOKEN_SIZE';

Metode 2: `SELECT` dari `INFORMATION_SCHEMA`

Hanya mengembalikan nilai yang telah dimodifikasi. Jika parameter belum pernah diubah dari nilai default-nya, kueri ini mengembalikan null.

SELECT `key`, `value`, `update_time`
FROM INFORMATION_SCHEMA.kepler_meta_configs
WHERE key = '<analyzer_param>';

Contoh:

SELECT `key`, `value`, `update_time`
FROM INFORMATION_SCHEMA.kepler_meta_configs
WHERE key = 'FULLTEXT_NGRAM_TOKEN_SIZE';

Modifikasi parameter konfigurasi

set adb_config <analyzer_param>=<value>;

Contoh:

set adb_config FULLTEXT_NGRAM_TOKEN_SIZE=3;