Plug-in analysis-ik adalah ekstensi tokenisasi bahasa Tiongkok untuk Alibaba Cloud Elasticsearch (ES). Plug-in ini mencakup beberapa kamus bawaan default yang dapat langsung digunakan. Anda juga dapat memperbarui kamus tersebut untuk menyesuaikan kamus default plug-in analysis-ik atau menambahkan kamus baru. Proses ini mengoptimalkan tokenisasi agar hasilnya lebih sesuai dengan skenario Anda. Plug-in analysis-ik mendukung pemuatan dinamis file kamus dari Object Storage Service (OSS) guna memungkinkan manajemen jarak jauh dan meningkatkan efisiensi operasional. Topik ini menjelaskan aturan tokenisasi dan jenis kamus pada plug-in analysis-ik, serta cara memperbarui kamus dan menggunakan plug-in tersebut.
Informasi latar belakang
Plug-in analysis-ik terdiri dari tiga komponen utama: pemisah kata (tokenizer), file kamus, dan mekanisme pembaruan kamus.
Pemisah kata: Memisahkan teks bahasa Tiongkok menjadi kata-kata bermakna (token) dan menentukan tingkat granularitas tokenisasi.
File kamus: Menyediakan basis kosakata yang digunakan oleh pemisah kata untuk melakukan tokenisasi. File-file ini mendukung ekstensi dan kustomisasi.
Metode pembaruan kamus: Mendukung pembaruan dingin dan panas, sehingga memungkinkan Anda menyesuaikan kamus secara fleksibel sesuai kebutuhan bisnis untuk memastikan tokenisasi memenuhi persyaratan Anda.
Aturan tokenisasi
Plug-in analysis-ik mendukung aturan tokenisasi berikut:
ik_max_word: Memisahkan teks dengan granularitas paling detail, sehingga cocok untuk kueri kata kunci.
ik_smart: Pemisah kata yang membagi teks dengan granularitas kasar, sehingga cocok untuk kueri frasa.
Jenis kamus
Tabel berikut menjelaskan jenis kamus yang didukung oleh plug-in analysis-ik.
Jenis kamus | Deskripsi | Persyaratan file kamus | Metode pembaruan yang didukung |
Kamus utama | Kamus utama bawaan default adalah Jika Anda menentukan kamus utama saat membuat indeks ES, kluster akan mencocokkan data yang ditulis ke indeks dengan kata-kata dalam kamus utama. Kluster kemudian membuat indeks untuk kata-kata yang cocok. Anda dapat mengambil indeks tersebut menggunakan kata kunci yang sesuai. | Satu kata per baris, disimpan sebagai file | |
Kamus stopword | Kamus stopword bawaan default adalah Jika Anda menentukan kamus stopword saat membuat indeks ES, kluster akan mencocokkan data yang ditulis ke indeks dengan kata-kata dalam kamus stopword. Kata-kata yang cocok akan difilter dan tidak muncul dalam indeks terbalik. | ||
Kamus preposisi | Kamus preposisi bawaan default adalah | Tidak berlaku | |
Kamus kuantifier | Kamus kuantifier bawaan default adalah | ||
suffix.dic | Menyimpan sufiks untuk membantu pemisah kata memisahkan kata yang memiliki sufiks. | Tidak berlaku | Pembaruan tidak didukung. |
surname.dic | Menyimpan nama keluarga Tiongkok untuk membantu pemisah kata mengenali nama orang. |
Metode pembaruan kamus
Jika kamus default tidak memenuhi kebutuhan bisnis Anda, Anda dapat memperbaruinya. Plug-in analysis-ik mendukung metode pembaruan kamus berikut.
Metode pembaruan | Deskripsi | Skenario |
Perubahan kamus diterapkan dengan me-restart kluster ES. Metode ini memperbarui kamus untuk seluruh kluster. Sistem mengirimkan file kamus yang diunggah ke node-node ES, lalu me-restart node tersebut untuk memuat file. Setelah restart, konfigurasi baru berlaku. |
| |
Catatan Hanya kamus utama dan stopword yang dapat diubah. |
|
Prasyarat
Pastikan instans berada dalam status Normal. Anda dapat melihat status instans di halaman Informasi Dasar instans.
CatatanOperasi dalam topik ini didemonstrasikan pada instans Alibaba Cloud ES versi
7.10.0. Antarmuka konsol dan fitur yang didukung mungkin berbeda untuk versi yang berbeda. Gunakan antarmuka konsol aktual yang berlaku.(Opsional) Untuk memperbarui kamus, Anda harus menyelesaikan langkah-langkah berikut.
Untuk memperbarui kamus menggunakan metode Upload OSS File, Anda harus terlebih dahulu membuat bucket OSS dan mengunggah file kamus yang diperlukan.
Untuk memperbarui menggunakan metode Upload Local File, simpan terlebih dahulu file kamus yang diperlukan ke komputer Anda.
Perbarui kamus IK
Jika kamus IK default tidak memenuhi kebutuhan bisnis Anda, Anda dapat memperbaruinya. Sebelum memperbarui, pahami terlebih dahulu metode pembaruan yang sesuai. Untuk indeks yang dikonfigurasi dengan tokenisasi IK, kamus yang diperbarui hanya berlaku untuk data baru, yaitu data yang baru ditambahkan dan diperbarui. Jika Anda ingin pembaruan berlaku untuk semua data, Anda harus membuat ulang indeks tersebut.
Pembaruan dingin
Untuk melakukan pembaruan dingin pada kamus IK, ikuti langkah-langkah berikut:
Pembaruan standar memicu restart kluster. Untuk memastikan bisnis Anda tidak terganggu, kami menyarankan Anda melakukan pembaruan pada jam-jam non-sibuk.
Buka halaman pembaruan dingin untuk plug-in
analysis-ik.Di panel navigasi kiri, pilih .
Di tab Built-in Plug-ins, temukan plug-in
analysis-ik, lalu klik Standard Update di kolom Actions.
Lakukan pembaruan dingin.
Di kotak dialog IK Dictionary Configuration - Cold Update, temukan kamus yang ingin Anda perbarui dan klik Edit. Ikuti petunjuk di layar untuk mengunggah file kamus dan klik Save.
Anda dapat mengunggah file kamus dengan salah satu cara berikut:
Upload Local File: Klik ikon
atau seret file lokal untuk mengunggah.Upload OSS File: Masukkan nama bucket dan nama file kamus. Lalu, klik Add.
Bucket dan instans Alibaba Cloud ES harus berada di wilayah yang sama.
Sinkronisasi otomatis file kamus di OSS tidak didukung. Jika konten file kamus sumber di OSS berubah, Anda harus secara manual melakukan pembaruan kamus IK untuk menerapkan perubahan tersebut.
CatatanAnda hanya dapat mengunggah satu file dalam format
DICuntuk setiap jenis kamus. File yang diunggah akan menggantikan file yang ada.Nama file harus memiliki ekstensi
.dic. Nama dapat terdiri dari maksimal 30 karakter dan boleh berisi huruf besar, huruf kecil, angka, dan garis bawah (_).Untuk memulihkan file kamus default, unduh file tersebut dan unggah kembali. Untuk mendapatkan file kamus default, lihat:
Untuk me-restart instans, centang kotak notifikasi risiko dan klik OK.
Setelah instans ES me-restart, file kamus diperbarui.
(Opsional) Verifikasi bahwa kamus telah berlaku.
Klik ikon
di pojok kiri atas dan pilih untuk membuka halaman Editor Kode.Sebagai contoh, jalankan kode berikut untuk membagi teks input
metode input karakter Tiongkok komputerpada tingkat granularitas kasar.CatatanSaat menggunakan kode ini, ganti
textdengan kata dari kamus Anda.GET _analyze { "analyzer": "ik_smart", "text": "metode input karakter Tiongkok komputer" }Hasil yang diharapkan adalah sebagai berikut.
{ "tokens" : [ { "token" : "komputer", "start_offset" : 0, "end_offset" : 3, "type" : "CN_WORD", "position" : 0 }, { "token" : "input karakter Tiongkok", "start_offset" : 3, "end_offset" : 7, "type" : "CN_WORD", "position" : 1 }, { "token" : "metode", "start_offset" : 7, "end_offset" : 9, "type" : "CN_WORD", "position" : 2 } ] }
Hot update
Untuk melakukan pembaruan panas pada kamus IK, ikuti langkah-langkah berikut:
Restart kluster tidak diperlukan jika hanya konten file yang berubah. Jika Anda mengubah jumlah file atau nama file, kluster harus di-restart. Untuk menghindari gangguan bisnis, lakukan operasi ini pada jam-jam non-sibuk. Setelah restart, kamus akan berlaku secara otomatis.
Buka halaman pembaruan panas untuk plug-in
analysis-ik.Di panel navigasi kiri, pilih .
Di tab Built-in Plug-ins, di kolom Actions untuk plug-in
analysis-ik, klik Rolling Update.
Lakukan pembaruan panas.
Di kotak dialog IK Dictionary Configuration - Hot Update, klik Edit untuk kamus target. Ikuti petunjuk di layar untuk mengunggah file kamus dan klik Save.
Anda dapat mengunggah file kamus dengan salah satu cara berikut:
Upload Local File: Klik ikon
atau seret file lokal untuk mengunggah.Upload OSS File: Masukkan nama bucket dan nama file kamus. Lalu, klik Add.
Bucket dan instans Alibaba Cloud ES harus berada di wilayah yang sama.
Sinkronisasi otomatis file kamus di OSS tidak didukung. Jika konten file kamus sumber di OSS berubah, Anda harus secara manual melakukan pembaruan kamus IK untuk menerapkan perubahan tersebut.
CatatanAnda dapat mengunggah beberapa file kamus. Ekstensi file harus berupa
.dic. Nama file dapat berisi huruf besar, huruf kecil, angka, dan garis bawah (_), serta panjangnya tidak boleh lebih dari 30 karakter.Untuk memodifikasi file kamus yang telah diunggah, klik ikon
di sebelah kanan file untuk mengunduh dan memodifikasinya. Kemudian, hapus file asli dan unggah versi yang telah dimodifikasi. Anda harus mengklik Save setelah menghapus file asli. Jika tidak, Anda akan menerima pesan kesalahan bahwa file dengan nama yang sama sudah ada saat mencoba mengunggah file yang telah dimodifikasi.
Klik OK dan tunggu hingga kamus dimuat di node-node ES.
Plug-in pada node Alibaba Cloud ES dapat memuat file kamus secara otomatis, tetapi waktu yang dibutuhkan setiap node untuk mengambil file tersebut bervariasi. Setelah file dimuat, kamus akan berlaku. Proses ini mungkin memerlukan waktu tertentu.
(Opsional) Verifikasi bahwa kamus telah berlaku.
Klik ikon
di pojok kiri atas dan pilih untuk membuka halaman Editor Kode.Sebagai contoh, jalankan kode berikut untuk membagi teks input
metode input karakter Tiongkok komputerpada tingkat granularitas kasar.CatatanSaat menggunakan kode ini, ganti
textdengan kata dari kamus Anda.GET _analyze { "analyzer": "ik_smart", "text": "metode input karakter Tiongkok komputer" }Hasil yang diharapkan adalah sebagai berikut.
{ "tokens" : [ { "token" : "komputer", "start_offset" : 0, "end_offset" : 3, "type" : "CN_WORD", "position" : 0 }, { "token" : "input karakter Tiongkok", "start_offset" : 3, "end_offset" : 7, "type" : "CN_WORD", "position" : 1 }, { "token" : "metode", "start_offset" : 7, "end_offset" : 9, "type" : "CN_WORD", "position" : 2 } ] }
Gunakan plug-in analysis-ik
Contoh ini menunjukkan cara menggunakan tokenizer IK dan filter Pinyin untuk melakukan tokenisasi teks tertentu.
Buka halaman Kibana Dev Tools dari instans ES.
Klik ikon
di pojok kiri atas dan pilih untuk membuka editor kode.
Buat indeks dan konfigurasikan tokenizer IK serta filter Pinyin.
Di halaman Dev Tools, jalankan perintah berikut untuk membuat indeks
ik_pinyindan alat analisis kustom bernamaik_pinyin_analyzer. Alat analisis ini menggunakan aturan tokenisasi detail halusik_max_worddan filter Pinyin untuk mengonversi kata bahasa Tiongkok menjadi Pinyin.CatatanFilter Pinyin dijalankan setelah tokenisasi bahasa Tiongkok selesai. Filter ini pertama-tama melakukan tokenisasi teks bahasa Tiongkok, lalu mengonversi hasil tokenisasi menjadi Pinyin untuk ditampilkan.
PUT ik_pinyin { "settings":{ "analysis": { "filter": { "my_pinyin" : { "type" : "pinyin", "keep_separate_first_letter" : false, "keep_full_pinyin" : true, "keep_original" : true, "limit_first_letter_length" : 16, "lowercase" : true, "remove_duplicated_term" : true } }, "analyzer": { "ik_pinyin_analyzer": { "type": "custom", "tokenizer": "ik_max_word", "filter": ["my_pinyin"] } } } }, "mappings":{ "properties":{ "text":{ "type" : "text", "analyzer" : "ik_pinyin_analyzer" } } } }Parameter inti dijelaskan sebagai berikut:
Filter Pinyin (
filter)CatatanUntuk informasi lebih lanjut tentang konfigurasi plug-in analisis Pinyin, lihat Analisis Pinyin untuk Elasticsearch.
Parameter
Deskripsi
my_pinyin
Nama filter Pinyin yang Anda definisikan.
type
Diatur ke
pinyinuntuk menentukan filter Pinyin.keep_separate_first_letter
Diatur ke
falseagar tidak menyimpan huruf pertama dari setiap karakter.keep_full_pinyin
Diatur ke
trueagar menyimpan Pinyin lengkap.keep_original
Diatur ke
trueagar menyimpan teks input asli.limit_first_letter_length
Diatur ke
16untuk membatasi panjang huruf pertama maksimal 16 karakter.lowercase
Diatur ke
trueagar menggunakan huruf kecil untuk output Pinyin.remove_duplicated_term
Diatur ke
trueagar menghapus istilah duplikat. Misalnya, ini menghindari hasil seperti"zh, zh".Alat Analisis (
analyzer):Parameter
Deskripsi
ik_pinyin_analyzer
Nama alat analisis yang Anda definisikan.
type
Diatur ke
customuntuk menentukan alat analisis kustom.tokenizer
Diatur ke
ik_max_worduntuk membagi teks dengan granularitas paling detail.filter
Diatur ke
my_pinyinuntuk memanggil filter Pinyinmy_pinyin.Hasil berikut dikembalikan, yang menunjukkan bahwa indeks berhasil dibuat.

Verifikasi hasil tokenisasi.
Anda dapat menjalankan kode berikut untuk melakukan tokenisasi teks input
Ini adalah tes.GET ik_pinyin/_analyze { "text": "Ini adalah tes", "analyzer": "ik_pinyin_analyzer" }Hasil yang diharapkan adalah sebagai berikut.
{ "tokens" : [ { "token" : "zhe", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 0 }, { "token" : "This is", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 0 }, { "token" : "zs", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 0 }, { "token" : "shi", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 1 }, { "token" : "ge", "start_offset" : 2, "end_offset" : 3, "type" : "CN_CHAR", "position" : 2 }, { "token" : "a", "start_offset" : 2, "end_offset" : 3, "type" : "CN_CHAR", "position" : 2 }, { "token" : "g", "start_offset" : 2, "end_offset" : 3, "type" : "CN_CHAR", "position" : 2 }, { "token" : "ce", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 3 }, { "token" : "shi", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 4 }, { "token" : "test", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 4 }, { "token" : "cs", "start_offset" : 3, "end_offset" : 5, "type" : "CN_WORD", "position" : 4 } ] }
Referensi
API untuk pembaruan panas kamus IK: UpdateHotIkDicts
API untuk pembaruan dingin kamus IK: UpdateDict