All Products
Search
Document Center

AnalyticDB:Analyzer untuk indeks teks penuh

Last Updated:Mar 28, 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 berbeda—pilih sesuai kebutuhan bahasa, pola pencarian (fuzzy, awalan, atau kecocokan eksak), serta apakah Anda memerlukan pemrosesan teks bahasa Tiongkok.

Pilih analyzer

AnalyzerPaling cocok untukDukungan bahasaKamus kustom
AliNLPTokenisasi berbasis Pemrosesan Bahasa Alami (NLP) untuk teks Tiongkok dan multibahasaTiongkok, Inggris, Indonesia, Melayu, Thailand, Vietnam, Prancis, SpanyolYa
IKTeks Tiongkok dengan granularitas yang dapat dikonfigurasiTiongkokYa
StandardTeks Inggris dengan penyaringan kata penghubung (stop-word)Aturan spesifik bahasaYa
NgramPencarian substring fuzzySemuaYa
Edge_ngramPencarian awalan dan pengisian otomatis (autocomplete)AnyYa
PatternTokenisasi berbasis pembatas kustom melalui ekspresi regulerAnyTidak

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

Sintaksis

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

Parameter

ParameterDeskripsi
idx_nameNama indeks teks penuh.
column_nameNama kolom yang akan diindeks.
WITH ANALYZER analyzer_nameAnalyzer yang digunakan. Abaikan untuk menggunakan analyzer default.
WITH DICT tbl_dict_nameKamus 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; jika tidak, kueri tersebut tidak akan dieksekusi dengan benar.

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

AnalyzerFungsi ujiOutput untuk 'Hello world'
AliNLPfulltext_alinlp_test()[hello, , world]
IKfulltext_ik_test()[hello, world, or]
Standardfulltext_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 Tiongkok dan multibahasa. Analyzer AliNLP dikembangkan oleh Alibaba Cloud dan Akademi DAMO menggunakan teknologi Pemrosesan Bahasa Alami (NLP). Analyzer ini memecah teks bahasa alami berurutan menjadi segmen-segmen bermakna dan mendukung kamus kustom untuk entitas dan kata penghubung (stop words) yang ditentukan pengguna.

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

  • Hasil tokenisasi untuk teks Inggris:

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

    Hasil:

    [hello,  , world]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

ParameterDeskripsiDefault
FULLTEXT_SPLIT_GRANULARITYGranularitas segmentasi. Bilangan bulat dari 2 hingga 8.2
FULLTEXT_FILTER_ST_CONVERT_ENABLEDMengaktifkan konversi bentuk dasar (misalnya, menman, carscar).false
FULLTEXT_TOKENIZER_CASE_SENSITIVEApakah tokenisasi peka huruf besar/kecil.false

FULLTEXT_FILTER_PINYIN_ENABLE

Menentukan apakah pencarian pinyin diaktifkan. Nilai yang valid:

  • true: Mengaktifkan pencarian pinyin.

  • false (default): Menonaktifkan pencarian pinyin.

FULLTEXT_FILTER_PINYIN_ENABLE

Menentukan apakah pencarian pinyin diaktifkan. Nilai yang valid:

  • true: Mengaktifkan pencarian pinyin.

  • false (default): Menonaktifkan pencarian pinyin.

Analyzer IK

Paling cocok untuk teks 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 penghubung (stop words).

  • Hasil tokenisasi untuk teks Inggris:

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

    Hasil:

    [hello, world, or]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

ParameterDeskripsiDefault
CSTORE_IK_SEGMENTER_USE_SMART_ENABLEMode segmentasi. true = granularitas kasar (mode ik_smart); false = granularitas halus (mode ik_max_word).false
CSTORE_IK_SEGMENTER_LETTER_MIN_LENGTHPanjang segmen minimum. Bilangan bulat dari 2 hingga 16.3
CSTORE_IK_SEGMENTER_LETTER_MAX_LENGTHPanjang segmen maksimum. Bilangan bulat dari 2 hingga 256.128

Analyzer Standard

Paling cocok untuk teks Inggris. Analyzer Standard menerapkan aturan spesifik bahasa: untuk bahasa Inggris, teks diubah menjadi huruf kecil dan kata penghubung (stop words) serta tanda baca dihapus sebelum dilakukan tokenisasi; untuk bahasa Tiongkok, teks dipisah menjadi karakter individual. Analyzer ini mendukung kamus kustom.

  • Hasil tokenisasi untuk teks Inggris:

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

    Hasil:

    [hello, world]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

ParameterDeskripsiDefault
FULLTEXT_MAX_TOKEN_LENGTHPanjang 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 kemungkinan dengan panjang tetap, sehingga efektif untuk kueri kecocokan parsial. Analyzer ini mendukung kamus kustom.

  • Hasil tokenisasi untuk teks 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

ParameterDeskripsiDefault
FULLTEXT_NGRAM_TOKEN_SIZEPanjang token. Bilangan bulat dari 1 hingga 8.2

Analyzer Edge_ngram

Paling cocok untuk pencarian awalan dan pengisian otomatis (autocomplete/search-as-you-type). Analyzer Edge_ngram menghasilkan token awalan dengan panjang 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 Inggris.

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

    Hasil:

    [h, he]

Contoh berikut menunjukkan hasil tokenisasi dengan konfigurasi default:

Parameter konfigurasi

ParameterDeskripsiDefault
FULLTEXT_MIN_GRAM_SIZEPanjang awalan minimum. Bilangan bulat dari 1 hingga 8.1
FULLTEXT_MAX_GRAM_SIZEPanjang awalan maksimum. Bilangan bulat dari 1 hingga 16. Harus lebih besar dari FULLTEXT_MIN_GRAM_SIZE.2

Analyzer Pattern

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

Sintaksis

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

ParameterDeskripsiDefault
FULLTEXT_TOKENIZER_CASE_SENSITIVEApakah 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;