All Products
Search
Document Center

Elasticsearch:Gunakan plugin penganalisis IK (analysis-ik)

Last Updated:Jun 16, 2026

Plugin penganalisis IK (analysis-ik) adalah ekstensi tokenisasi teks bahasa Tionghoa untuk Alibaba Cloud Elasticsearch (ES) yang dilengkapi beberapa jenis kamus bawaan. Anda dapat menyesuaikan atau memperluas kamus untuk meningkatkan akurasi tokenisasi serta memuat file kamus secara dinamis dari Object Storage Service (OSS) guna memudahkan manajemen jarak jauh.

Informasi latar belakang

Plugin penganalisis IK terdiri dari tiga komponen: tokenizer, file kamus, dan mekanisme pembaruan.

Penting

Versi plugin penganalisis IK harus sesuai dengan versi kluster Elasticsearch. Misalnya, jika kluster Anda menjalankan versi 8.17, plugin penganalisis IK juga harus versi 8.17.

  • Tokenizer: Memisahkan teks bahasa Tionghoa menjadi istilah bermakna (token) dan menentukan granularitas tokenisasi.

  • File kamus: Menyediakan dasar kosakata. Tokenizer mengandalkan file-file ini untuk segmentasi dan mendukung penyesuaian serta perluasan.

  • Metode pembaruan kamus: Mendukung pembaruan dingin maupun panas sehingga Anda dapat menyesuaikan kamus secara fleksibel sesuai kebutuhan bisnis.

Aturan tokenisasi

Penganalisis IK mendukung dua aturan tokenisasi:

  • ik_max_word: Memisahkan teks dengan granularitas terkecil, ideal untuk kueri berbasis istilah.

  • ik_smart: Memisahkan teks dengan granularitas lebih kasar, ideal untuk kueri berbasis frasa.

Jenis kamus

Penganalisis IK mendukung jenis kamus berikut:

Jenis kamus

Deskripsi

Persyaratan file

Metode pembaruan yang didukung

Kamus utama

Kamus utama bawaan adalah main.dic, yang berisi lebih dari 270.000 kata bahasa Tionghoa.

Saat Anda menentukan kamus utama untuk indeks ES, kluster mencocokkan data masuk terhadap kamus ini selama pengindeksan. Istilah yang cocok menjadi dapat dicari melalui kata kunci yang sesuai.

Satu kata per baris, disimpan sebagai file DIC berkode UTF-8.

Kamus kata berhenti

Kamus kata berhenti bawaan adalah stopword.dic, yang mencakup kata berhenti bahasa Inggris seperti a, the, and, at, but, dll.

Saat Anda menentukan kamus kata berhenti untuk indeks ES, kluster menyaring istilah yang cocok selama pengindeksan. Istilah yang difilter tidak muncul dalam indeks terbalik.

Kamus preposisi

Kamus preposisi bawaan adalah preposition.dic, yang menyimpan preposisi untuk membantu tokenizer memisahkan preposisi dari kata-kata berikutnya.

Tidak berlaku

Pembaruan Dingin

Kamus kuantifier

Kamus kuantifier bawaan adalah quantifier.dic, yang menyimpan istilah terkait satuan dan kuantifier untuk membantu tokenizer mengenali kombinasi kuantifier-kata benda.

suffix.dic

Menyimpan istilah sufiks untuk membantu tokenizer memisahkan kata yang memiliki sufiks.

Tidak berlaku

Pembaruan tidak didukung

surname.dic

Menyimpan nama keluarga Tionghoa umum untuk membantu tokenizer mengenali nama.

Metode pembaruan kamus

Perbarui kamus saat kamus bawaan tidak memenuhi kebutuhan Anda. Penganalisis IK mendukung metode berikut.

Metode pembaruan

Deskripsi

Skenario

Pembaruan dingin

Me-restart kluster ES untuk menerapkan perubahan kamus di semua node.

Sistem mengirimkan file yang diunggah ke semua node ES dan me-restart-nya. Perubahan berlaku setelah restart selesai.

  • Mengganti atau menghapus konten dalam file kamus bawaan.

  • Memperbarui file kamus preposisi atau kuantifier.

Hot update

  • Jika hanya konten kamus yang ada yang berubah dan nama file tetap sama, kluster memuat kamus baru secara dinamis tanpa restart.

  • Jika nama file kamus berubah atau daftar file kamus berubah (menambah, menghapus, atau mengganti nama file), kluster melakukan restart untuk memuat ulang konfigurasi. Konfigurasi yang diperbarui berlaku setelah restart selesai. Ini termasuk konfigurasi pembaruan panas pertama kali.

Catatan

Hanya mendukung pembaruan kamus utama atau kamus kata berhenti.

Penting

Saat Anda mengonfigurasi pembaruan panas untuk pertama kalinya atau mengubah daftar file kamus (menambah, menghapus, atau mengganti nama file kamus), kluster akan restart. Hanya perubahan konten saja pada file kamus yang sudah ada dengan nama file tidak berubah yang berlaku secara dinamis tanpa restart. Jadwalkan operasi ini selama jam sepi agar tidak mengganggu bisnis Anda.

  • Memperluas kamus utama atau kamus kata berhenti dengan menambahkan file kamus kustom selain bawaan.

  • Memodifikasi konten file kamus utama atau kamus kata berhenti yang sudah ada (termasuk kamus bawaan dan tambahan).

Prasyarat

  • Instans berada dalam status Normal. Lihat status instans pada halaman detail.

    Catatan

    Topik ini menggunakan instans Alibaba Cloud ES yang menjalankan versi 7.10.0. Antarmuka Konsol dan fitur dapat berbeda antar versi.

  • (Opsional) Jika Anda berencana memperbarui kamus, selesaikan langkah-langkah berikut terlebih dahulu.

    • Untuk memperbarui menggunakan Upload OSS File: Pertama buat bucket OSS dan unggah file kamus yang diperlukan.

    • Untuk memperbarui menggunakan Upload On-premises File: Simpan file kamus yang diperlukan ke mesin lokal Anda terlebih dahulu.

Perbarui kamus IK

Perbarui kamus IK saat kamus bawaan tidak memenuhi kebutuhan Anda. Tinjau metode pembaruan sebelum melanjutkan. Untuk indeks yang telah dikonfigurasi dengan tokenisasi IK, pembaruan kamus hanya berlaku untuk data baru (dokumen yang baru ditambahkan atau diperbarui). Untuk menerapkan perubahan ke semua data yang sudah ada, buat ulang indeks tersebut.

Pembaruan dingin

Untuk melakukan pembaruan dingin:

Peringatan

Pembaruan dingin me-restart kluster. Lakukan ini selama jam sepi.

  1. Buka halaman detail instans.

    1. Login ke Konsol Alibaba Cloud Elasticsearch.

    2. Di panel navigasi kiri, klik Elasticsearch Clusters.

    3. Di bilah menu atas, pilih kelompok sumber daya dan wilayah.

    4. Di daftar instans Elasticsearch, klik ID instans target untuk membuka halaman detailnya.

  2. Buka halaman pembaruan dingin untuk plugin analysis-ik.

    1. Di panel navigasi kiri, pilih Configuration and Management > Plug-ins.

    2. Di tab Built-in Plug-ins, temukan plugin analysis-ik dan klik Standard Update di kolom Actions.

  3. Lakukan pembaruan dingin.

    1. Di kotak dialog Configure IK Dictionaries - Standard Update, klik Edit di sebelah kamus target, unggah file kamus yang diperlukan sesuai petunjuk, lalu klik Save.

      Anda dapat mengunggah file kamus menggunakan salah satu metode berikut:

      • Upload On-premises File: Klik ikon image atau seret dan lepas file lokal Anda sesuai petunjuk.

      • 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.

        • File kamus OSS tidak disinkronkan secara otomatis. Jika file sumber berubah, lakukan pembaruan kamus untuk menerapkan perubahan.

      Catatan
    2. Pilih pengakuan risiko dan klik OK untuk me-restart instans.

      Setelah instans direstart, pembaruan kamus selesai.

  4. (Opsional) Uji apakah pembaruan kamus telah berlaku.

    1. Login ke konsol Kibana.

    2. Klik ikon image di pojok kiri atas dan pilih Management > Developer Tools untuk membuka editor kode.

      Jalankan kode berikut untuk melakukan tokenisasi granularitas kasar pada teks input Chinese character input method for computers.

      Catatan

      Dalam praktiknya, ganti nilai text dengan kata dari kamus Anda.

      GET _analyze
      {
        "analyzer": "ik_smart",
        "text": "计算机汉字输入方法"
      }

      Tanggapan yang diharapkan adalah sebagai berikut.

      {
        "tokens" : [
          {
            "token" : "computer",
            "start_offset" : 0,
            "end_offset" : 3,
            "type" : "CN_WORD",
            "position" : 0
          },
          {
            "token" : "Chinese character input",
            "start_offset" : 3,
            "end_offset" : 7,
            "type" : "CN_WORD",
            "position" : 1
          },
          {
            "token" : "method",
            "start_offset" : 7,
            "end_offset" : 9,
            "type" : "CN_WORD",
            "position" : 2
          }
        ]
      }

Hot update

Untuk melakukan pembaruan panas:

Catatan

Perubahan konten saja pada file kamus yang sudah ada dengan nama file tidak berubah tidak me-restart kluster. Jika nama file kamus atau jumlahnya berubah, atau jika Anda mengonfigurasi pembaruan panas untuk pertama kalinya, kluster akan restart. Lakukan operasi ini selama jam sepi agar tidak mengganggu bisnis Anda. Setelah restart, kamus berlaku secara otomatis.

  1. Buka halaman detail instans.

    1. Login ke Konsol Alibaba Cloud Elasticsearch.

    2. Di panel navigasi kiri, klik Elasticsearch Clusters.

    3. Di bilah menu atas, pilih kelompok sumber daya dan wilayah.

    4. Di daftar instans Elasticsearch, klik ID instans target untuk membuka halaman detailnya.

  2. Buka halaman pembaruan panas untuk plugin analysis-ik.

    1. Di panel navigasi kiri, pilih Configuration and Management > Plug-ins.

    2. Di tab Built-in Plug-ins, temukan plugin analysis-ik dan klik Rolling Update di kolom Actions.

  3. Lakukan pembaruan panas.

    1. Di kotak dialog Configure IK Dictionaries - Rolling Update, klik Edit di sebelah kamus target, unggah file kamus yang diperlukan sesuai petunjuk, lalu klik Save.

      Anda dapat mengunggah file kamus menggunakan salah satu metode berikut:

      • Upload On-premises File: Klik ikon image atau seret dan lepas file lokal Anda sesuai petunjuk.

      • 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.

        • File kamus OSS tidak disinkronkan secara otomatis. Jika file sumber berubah, lakukan pembaruan kamus untuk menerapkan perubahan.

      Catatan
      • Anda dapat mengunggah beberapa file kamus. Nama file harus diakhiri dengan .dic. Nama file dapat berisi huruf, angka, dan garis bawah, serta tidak boleh melebihi 30 karakter.

      • Untuk memodifikasi file kamus yang telah diunggah, klik ikon Download di sebelahnya untuk mengunduh dan mengedit file tersebut. Lalu hapus file asli dan unggah ulang file yang telah diperbarui. Setelah menghapus file asli, klik Save; jika tidak, sistem akan melaporkan bahwa file dengan nama yang sama sudah ada.

    2. Klik OK dan tunggu hingga node ES selesai memuat kamus.

      Node ES memuat file kamus secara otomatis. Setiap node memuat pada waktu yang berbeda — tunggu hingga semua node selesai.

  4. (Opsional) Uji apakah pembaruan kamus telah berlaku.

    1. Login ke konsol Kibana.

    2. Klik ikon image di pojok kiri atas dan pilih Management > Developer Tools untuk membuka editor kode.

      Jalankan kode berikut untuk melakukan tokenisasi granularitas kasar pada teks input Chinese character input method for computers.

      Catatan

      Dalam praktiknya, ganti nilai text dengan kata dari kamus Anda.

      GET _analyze
      {
        "analyzer": "ik_smart",
        "text": "计算机汉字输入方法"
      }

      Tanggapan yang diharapkan adalah sebagai berikut.

      {
        "tokens" : [
          {
            "token" : "computer",
            "start_offset" : 0,
            "end_offset" : 3,
            "type" : "CN_WORD",
            "position" : 0
          },
          {
            "token" : "Chinese character input",
            "start_offset" : 3,
            "end_offset" : 7,
            "type" : "CN_WORD",
            "position" : 1
          },
          {
            "token" : "method",
            "start_offset" : 7,
            "end_offset" : 9,
            "type" : "CN_WORD",
            "position" : 2
          }
        ]
      }

Gunakan plugin penganalisis IK

Tokenisasi teks menggunakan tokenizer IK dengan filter Pinyin.

  1. Buka halaman Developer Tools Kibana untuk instans ES Anda.

    1. Login ke konsol Kibana.

    2. Klik ikon image di pojok kiri atas dan pilih Management > Developer Tools untuk membuka editor kode.

  2. Buat indeks dan konfigurasikan tokenizer IK serta filter Pinyin.

    Jalankan perintah berikut untuk membuat indeks ik_pinyin dengan ik_pinyin_analyzer kustom yang menggunakan tokenisasi ik_max_word dan filter Pinyin untuk mengonversi istilah bahasa Tionghoa menjadi Pinyin.

    Catatan

    Filter Pinyin mengonversi token menjadi Pinyin setelah tokenisasi bahasa Tionghoa selesai.

    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 utama dijelaskan di bawah ini.

    • Filter Pinyin (parameter filter)

      Catatan

      Semua parameter yang tersedia didokumentasikan dalam Pinyin Analysis for Elasticsearch.

      Parameter

      Deskripsi

      my_pinyin

      Nama filter Pinyin kustom Anda.

      type

      Diatur ke pinyin untuk menentukan filter Pinyin.

      keep_separate_first_letter

      Diatur ke false untuk mengecualikan huruf awal individu dari setiap karakter.

      keep_full_pinyin

      Diatur ke true untuk menyertakan bentuk Pinyin lengkap.

      keep_original

      Diatur ke true untuk mempertahankan teks input asli.

      limit_first_letter_length

      Diatur ke 16 untuk membatasi urutan huruf awal hingga 16 karakter.

      lowercase

      Diatur ke true untuk menghasilkan Pinyin dalam huruf kecil.

      remove_duplicated_term

      Diatur ke true untuk menghapus istilah duplikat, seperti menghindari “zh,zh”.

    • Alat analisis (analyzer):

      Parameter

      Deskripsi

      ik_pinyin_analyzer

      Nama penganalisis kustom Anda.

      type

      Diatur ke custom untuk mendefinisikan penganalisis kustom.

      tokenizer

      Diatur ke ik_max_word untuk memisahkan teks dengan granularitas terkecil.

      filter

      Diatur ke my_pinyin untuk menerapkan filter Pinyin my_pinyin.

      Gambar berikut menunjukkan hasil pembuatan yang berhasil.image

  3. Verifikasi hasil tokenisasi.

    Jalankan kode berikut untuk melakukan tokenisasi pada teks input This is a test.

    GET ik_pinyin/_analyze
    {
      "text": "这是个测试",
      "analyzer": "ik_pinyin_analyzer"
    }

    Tanggapan 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" : "one",
          "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
        }
      ]
    }
    

Optimalkan tokenisasi untuk kata campuran alfanumerik

Saat Anda menggunakan tokenizer ik_max_word, string campuran alfanumerik seperti fawjh6bcm mungkin tidak ditokenisasi secara efektif untuk pencarian. Untuk meningkatkan recall, atur parameter enable_single_word ke true. Ini memisahkan kata campuran menjadi token karakter tunggal, memungkinkan pencocokan tingkat karakter.

Contoh berikut membuat penganalisis kustom dengan enable_single_word diaktifkan:

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "ik_single_char_analyzer": {
          "type": "custom",
          "tokenizer": "my_ik_tokenizer"
        }
      },
      "tokenizer": {
        "my_ik_tokenizer": {
          "type": "ik_max_word",
          "enable_single_word": true
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "ik_single_char_analyzer"
      }
    }
  }
}

Parameter

Deskripsi

enable_single_word

Diatur ke true untuk memisahkan string campuran alfanumerik menjadi token karakter individual, meningkatkan recall untuk string seperti nomor model atau kode seri. Default: false.

Catatan

Parameter ini juga didukung di lingkungan Alibaba Cloud Elasticsearch Serverless.

Gunakan tokenizer ngram untuk pencarian campuran Tionghoa-Inggris

Saat Anda mencari nomor model Inggris yang digabung (seperti jh6bcm) yang dicampur dengan teks Tionghoa, penganalisis IK saja mungkin tidak menghasilkan token yang efektif untuk pencocokan parsial. Dalam skenario ini, gunakan tokenizer ngram untuk melengkapi atau menggantikan penganalisis IK.

Tokenizer ngram memecah teks menjadi urutan karakter berurutan dengan panjang yang dapat dikonfigurasi, memungkinkan pencocokan substring untuk string yang digabung.

Contoh berikut membuat indeks yang menggunakan tokenizer ngram:

PUT my_ngram_index
{
  "settings": {
    "analysis": {
      "tokenizer": {
        "my_ngram_tokenizer": {
          "type": "ngram",
          "min_gram": 2,
          "max_gram": 3,
          "token_chars": ["letter", "digit"]
        }
      },
      "analyzer": {
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "my_ngram_tokenizer"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "model_number": {
        "type": "text",
        "analyzer": "ngram_analyzer"
      }
    }
  }
}

Parameter

Deskripsi

min_gram

Panjang karakter minimum suatu gram. Default: 1.

max_gram

Panjang karakter maksimum suatu gram. Default: 2.

token_chars

Kelas karakter yang disertakan dalam token. Nilai yang valid: letter, digit, whitespace, punctuation, symbol.

Untuk informasi lebih lanjut tentang konfigurasi tokenizer ngram, lihat Ngram tokenizer.

FAQ

Kata dalam huruf kapital di file sinonim menyebabkan error. Apa yang harus saya lakukan?

Penganalisis IK peka terhadap huruf besar/kecil saat memproses file sinonim. Jika file sinonim berisi kata dalam huruf kapital (seperti IT), kesalahan parsing dapat terjadi selama pengindeksan.

Anda dapat mengatasi masalah ini dengan salah satu metode berikut:

  • Konversi semua sinonim ke huruf kecil: Edit file sinonim Anda dan konversi semua entri ke huruf kecil sebelum mengunggah.

  • Tambahkan filter huruf kecil ke penganalisis: Tambahkan filter lowercase sebelum filter sinonim dalam konfigurasi penganalisis Anda untuk menormalisasi teks ke huruf kecil sebelum pencocokan sinonim. Contoh:

    PUT my_index
    {
      "settings": {
        "analysis": {
          "filter": {
            "my_synonym_filter": {
              "type": "synonym",
              "synonyms_path": "your_synonyms.txt"
            }
          },
          "analyzer": {
            "ik_synonym_analyzer": {
              "type": "custom",
              "tokenizer": "ik_max_word",
              "filter": ["lowercase", "my_synonym_filter"]
            }
          }
        }
      }
    }
    Penting

    Filter lowercase harus muncul sebelum filter sinonim dalam rantai filter untuk memastikan teks dikonversi ke huruf kecil sebelum pencocokan sinonim dilakukan.

Referensi