All Products
Search
Document Center

Elasticsearch:Gunakan plugin tokenizer AliNLP (analysis-aliws)

Last Updated:Mar 27, 2026

Plugin tokenisasi AliNLP, juga dikenal sebagai analysis-aliws, merupakan plugin bawaan Alibaba Cloud Elasticsearch. Setelah Anda menginstal plugin ini pada kluster Elasticsearch, sebuah alat analisis (analyzer) dan pemisah kata (tokenizer) diintegrasikan ke dalam kluster untuk menerapkan analisis dan pengambilan dokumen. Plugin ini memungkinkan Anda mengunggah file kamus kustom. Setelah diunggah, kluster melakukan pembaruan bergulir (rolling update) untuk menerapkan file kamus tersebut tanpa perlu restart.

Plugin analysis-aliws menambahkan dua komponen ke kluster Anda:

  • Analyzer: aliws — menghapus kata fungsi, frasa fungsi, dan simbol dari hasil

  • Tokenizer: aliws_tokenizer

Setelah instalasi, gunakan analyzer aliws untuk mengindeks dan mencari dokumen, unggah file kamus kustom untuk memperluas kosakata, atau buat analyzer kustom berdasarkan aliws_tokenizer.

Jika hasil pencarian tidak sesuai harapan, uji analyzer dan tokenizer secara langsung untuk mendiagnosis masalah. Lihat Uji analyzer dan Uji tokenizer.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster Elasticsearch dengan plugin analysis-aliws yang telah diinstal. Plugin ini tidak diinstal secara default. Untuk menginstalnya, lihat Instal dan hapus plugin bawaan

  • Node data dengan memori minimal 8 GiB. Jika kluster Anda tidak memenuhi persyaratan ini, tingkatkan konfigurasi kluster terlebih dahulu. Lihat Tingkatkan konfigurasi kluster

Batasan

Plugin analysis-aliws tidak didukung pada:

  • Kluster Elasticsearch V5.X

  • Kluster Elasticsearch V8.X

  • Kluster Elasticsearch Edisi Kernel-enhanced

Periksa apakah kluster Anda mendukung plugin ini di konsol Elasticsearch sebelum melanjutkan.

Cari dokumen menggunakan analyzer aliws

Bagian ini menjelaskan langkah-langkah membuat indeks dengan analyzer aliws, mengindeks dokumen, dan menjalankan pencarian.

Langkah-langkah berikut menggunakan kluster Elasticsearch V6.7.0 sebagai contoh. Langkah-langkah dapat berbeda untuk versi lain. Ikuti operasi aktual di konsol Anda.
  1. Masuk ke konsol Kibana kluster Elasticsearch Anda. Untuk detailnya, lihat Masuk ke konsol Kibana.

  2. Di panel navigasi sebelah kiri, klik Dev Tools.

  3. Pada tab Console, jalankan perintah sesuai versi kluster Anda untuk membuat indeks: For clusters running a version earlier than V7.0:

    PUT /index
    {
      "mappings": {
        "fulltext": {
          "properties": {
            "content": {
              "type": "text",
              "analyzer": "aliws"
            }
          }
        }
      }
    }

    Untuk kluster yang menjalankan V7.0 atau lebih baru:

    PUT /index
    {
      "mappings": {
        "properties": {
          "content": {
            "type": "text",
            "analyzer": "aliws"
          }
        }
      }
    }

    Kedua perintah tersebut membuat indeks bernama index dengan bidang content bertipe text dan menetapkan analyzer aliws ke bidang tersebut. Tipe indeks adalah fulltext pada versi sebelum V7.0 dan _doc pada V7.0 atau lebih baru. Respons sukses akan tampak seperti:

    {
      "acknowledged": true,
      "shards_acknowledged": true,
      "index": "index"
    }
  4. Tambahkan dokumen ke indeks:

    Penting

    Perintah berikut hanya berlaku untuk kluster yang menjalankan versi sebelum V7.0. Untuk V7.0 atau lebih baru, ganti fulltext dengan _doc.

    POST /index/fulltext/1
    {
      "content": "I like go to school."
    }

    Ini menambahkan dokumen dengan ID 1 dan mengatur nilai bidang content-nya menjadi I like go to school. Respons sukses akan tampak seperti:

    {
      "_index": "index",
      "_type": "fulltext",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 2,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
  5. Cari dokumen tersebut:

    Penting

    Perintah berikut hanya berlaku untuk kluster yang menjalankan versi sebelum V7.0. Untuk V7.0 atau lebih baru, ganti fulltext dengan _doc.

    GET /index/fulltext/_search
    {
      "query": {
        "match": {
          "content": "school"
        }
      }
    }

    Ini menjalankan analyzer aliws pada semua dokumen dalam tipe fulltext dan mengembalikan dokumen yang bidang content-nya mengandung token school. Kata fungsi seperti to dikecualikan dari analisis. Respons sukses akan tampak seperti:

    {
      "took": 5,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 1,
        "max_score": 0.2876821,
        "hits": [
          {
            "_index": "index",
            "_type": "fulltext",
            "_id": "2",
            "_score": 0.2876821,
            "_source": {
              "content": "I like go to school."
            }
          }
        ]
      }
    }

Konfigurasi kamus kustom

Plugin analysis-aliws mendukung satu file kamus kustom bernama aliws_ext_dict.txt. Setelah Anda mengunggah file tersebut, semua node dalam kluster akan memuatnya secara otomatis tanpa restart—kluster melakukan pembaruan bergulir yang memakan waktu sekitar 10 menit.

Tidak ada file kamus yang disediakan setelah instalasi. Unggah satu jika Anda memerlukan kosakata kustom.

Persyaratan file kamus

Sebelum mengunggah, pastikan file kamus Anda memenuhi persyaratan berikut:

PersyaratanDetail
Nama filealiws_ext_dict.txt
EncodingUTF-8
FormatSatu kata per baris, setiap baris diakhiri dengan \n (line feed UNIX/Linux). Tidak boleh ada spasi di awal atau akhir baris.
File WindowsGunakan tool dos2unix untuk mengonversi file sebelum mengunggah.

Unggah file kamus

  1. Masuk ke konsol Alibaba Cloud Elasticsearch.

  2. Di panel navigasi sebelah kiri, klik Elasticsearch Clusters.

  3. Di bilah navigasi atas, pilih kelompok sumber daya dan wilayah kluster Anda. Pada halaman Elasticsearch Clusters, klik ID kluster.

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

  5. Pada tab Built-in Plug-ins, temukan plugin analysis-aliws dan klik Configure Dictionary di kolom Actions.

  6. Pada panel Configure Dictionary, klik Configure di pojok kiri bawah.

  7. Unggah file kamus menggunakan salah satu metode berikut:

    • TXT File: Klik Upload TXT File dan pilih file dari mesin lokal Anda.

    • Add OSS File: Masukkan Bucket Name dan File Name, lalu klik Add. Bucket Object Storage Service (OSS) harus berada di wilayah yang sama dengan kluster Elasticsearch Anda. Jika konten file OSS berubah di kemudian hari, unggah ulang file kamus melalui konsol—perubahan pada OSS tidak diambil secara otomatis.

  8. Klik Save. Kluster melakukan pembaruan bergulir untuk menerapkan file kamus. Proses ini memakan waktu sekitar 10 menit. Kluster tidak melakukan restart selama proses ini.

    Untuk mengunduh file yang telah diunggah, klik ikon 下载按钮 di samping nama file.
Hanya satu file kamus yang diperbolehkan dalam satu waktu. Untuk menggantinya, klik x di samping aliws_ext_dict.txt untuk menghapus file saat ini, lalu unggah file baru.

Uji analyzer

Jalankan perintah berikut untuk memverifikasi cara analyzer aliws melakukan tokenisasi teks:

GET _analyze
{
  "text": "I like go to school.",
  "analyzer": "aliws"
}

Analyzer aliws menghapus kata fungsi dan simbol. Untuk input "I like go to school.", output yang diharapkan adalah:

{
  "tokens" : [
    {
      "token" : "i",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    }
  ]
}

Kata fungsi to dan titik . dikecualikan dari output.

Uji tokenizer

Jalankan perintah berikut untuk memverifikasi cara aliws_tokenizer melakukan tokenisasi teks:

GET _analyze
{
  "text": "I like go to school.",
  "tokenizer": "aliws_tokenizer"
}

Berbeda dengan analyzer aliws, aliws_tokenizer mempertahankan semua token termasuk kata fungsi, spasi, dan tanda baca. Untuk input "I like go to school.", output yang diharapkan adalah:

{
  "tokens" : [
    {
      "token" : "I",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : " ",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : " ",
      "start_offset" : 6,
      "end_offset" : 7,
      "type" : "word",
      "position" : 3
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : " ",
      "start_offset" : 9,
      "end_offset" : 10,
      "type" : "word",
      "position" : 5
    },
    {
      "token" : "to",
      "start_offset" : 10,
      "end_offset" : 12,
      "type" : "word",
      "position" : 6
    },
    {
      "token" : " ",
      "start_offset" : 12,
      "end_offset" : 13,
      "type" : "word",
      "position" : 7
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    },
    {
      "token" : ".",
      "start_offset" : 19,
      "end_offset" : 20,
      "type" : "word",
      "position" : 9
    }
  ]
}

Buat analyzer kustom

aliws_tokenizer menerapkan filter-filter berikut setelah tokenisasi:

FilterEfekPerilaku default
stemmerMengurangi kata ke bentuk dasarnyaDiaktifkan
lowercaseMengonversi semua token menjadi huruf kecilDiaktifkan
porter_stemMenerapkan algoritma stemming PorterDiaktifkan
stopMenghapus stopwordsDiaktifkan

Untuk membuat analyzer kustom, tambahkan aliws_tokenizer sebagai tokenizer dasar dan konfigurasikan filter sesuai kebutuhan Anda. Gunakan bidang stopwords untuk menentukan stopwords kustom.

Contoh berikut membuat analyzer kustom bernama my_custom_analyzer dengan filter stop kustom:

PUT my-index-000001
{
  "settings": {
    "analysis": {
      "filter": {
        "my_stop": {
          "type": "stop",
          "stopwords": [
            " ",
            ",",
            ".",
            " ",
            "a",
            "of"
          ]
        }
      },
      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer": "aliws_tokenizer",
          "filter": [
            "lowercase",
            "porter_stem",
            "my_stop"
          ]
        }
      }
    }
  }
}
Untuk melewati filtering sepenuhnya, hapus blok filter dari konfigurasi analyzer.

Untuk memverifikasi analyzer kustom berfungsi sesuai harapan, jalankan:

GET my-index-000001/_analyze
{
  "analyzer": "my_custom_analyzer",
  "text": ["I like go to school."]
}

aliws_tokenizer juga mendukung konfigurasi sinonim menggunakan metode yang sama seperti plugin analysis-ik. Untuk detailnya, lihat Gunakan sinonim.

FAQ

Bagaimana cara mengonfigurasi plugin analysis-aliws? Format apa yang digunakan oleh file kamus?

Lihat Konfigurasi kamus kustom untuk langkah-langkah pengunggahan dan Persyaratan file kamus untuk formatnya.

Untuk pertanyaan tambahan tentang konfigurasi plugin, lihat FAQ untuk analysis-aliws.

Apa perbedaan antara sinonim Elasticsearch, token IK, dan token AliNLP?

Lihat Sinonim Elasticsearch vs. token IK vs. token AliNLP.

Jika kamus OSS diperbarui, apakah kluster mengambil perubahan tersebut secara otomatis?

Tidak. Jika konten kamus OSS berubah, unggah ulang file tersebut melalui konsol. Lihat Konfigurasi kamus kustom.

Untuk detail lebih lanjut tentang pembaruan bergulir dan kamus berbasis OSS, lihat entri FAQ ini.

Setelah tokenisasi, huruf `e` di akhir kata seperti `iPhone` (menjadi `Iphon`) dan `Chinese` (menjadi `chines`) hilang. Bagaimana cara memperbaikinya?

aliws_tokenizer melakukan stemming kata setelah tokenisasi. Akibatnya, huruf e di akhir setiap kata dihapus. Untuk menonaktifkan stemming, buat analyzer kustom yang menggunakan aliws_tokenizer tanpa filter apa pun:

PUT my-index1
{
  "settings": {
    "number_of_shards": 1,
    "analysis": {
      "analyzer": {
        "my_custom_analyzer": {
          "type": "custom",
          "tokenizer": "aliws_tokenizer"
        }
      }
    }
  }
}

Verifikasi hasilnya:

GET my-index1/_analyze
{
  "analyzer": "my_custom_analyzer",
  "text": ["iphone"]
}

Output sekarang seharusnya mengembalikan iphone tanpa pemotongan.

Referensi

  • Ikhtisar plugin — semua plugin yang tersedia untuk Alibaba Cloud Elasticsearch

  • InstallSystemPlugin — Operasi API untuk menginstal plugin bawaan

  • UpdateAliwsDict — Operasi API untuk memperbarui file kamus analysis-aliws

  • ListPlugins — Operasi API untuk menampilkan daftar plugin yang diinstal pada kluster