全部产品
Search
文档中心

Elasticsearch:Gunakan plugin analysis-aliws

更新时间:Jul 06, 2025

Plugin tokenisasi AliNLP, juga dikenal sebagai analysis-aliws, adalah plugin bawaan dari Alibaba Cloud Elasticsearch. Setelah menginstal plugin ini pada kluster Elasticsearch Anda, analizer dan tokenizer terintegrasi ke dalam kluster untuk melakukan analisis dokumen dan pencarian. Plugin ini memungkinkan Anda mengunggah file kamus yang disesuaikan. Setelah pengunggahan, sistem melakukan pembaruan bergulir untuk kluster Elasticsearch guna menerapkan file kamus tersebut.

Pengenalan

Setelah plugin analysis-aliws diinstal, analizer dan tokenizer berikut secara default terintegrasi ke dalam kluster Elasticsearch Anda. Anda dapat menggunakan analizer dan tokenizer tersebut untuk mencari dokumen. Anda juga dapat mengunggah file kamus yang disesuaikan ke dalam plugin.

  • Analyzer: aliws, yang tidak mengembalikan kata fungsi, frasa fungsi, atau simbol.

  • Tokenizer: aliws_tokenizer

Catatan

Prasyarat

Plugin analysis-aliws telah diinstal. Ini tidak diinstal secara default. Untuk informasi lebih lanjut tentang cara menginstal plugin, lihat Instal dan hapus plugin bawaan.

Batasan

  • Ukuran memori node data dalam kluster Elasticsearch Anda harus 8 GiB atau lebih tinggi. Jika ukuran memori node data dalam kluster Anda tidak memenuhi persyaratan, tingkatkan konfigurasi kluster Anda. Untuk informasi lebih lanjut, lihat Tingkatkan konfigurasi kluster.

  • Kluster Elasticsearch V5.X, kluster Elasticsearch V8.X, dan kluster Edisi Inti Ditingkatkan Elasticsearch tidak mendukung plugin analysis-aliws. Anda dapat memeriksa apakah kluster Anda mendukung plugin di konsol Elasticsearch.

Gunakan analizer aliws untuk mencari dokumen

  1. Masuk ke konsol Kibana kluster Elasticsearch Anda dan buka halaman utama konsol Kibana sesuai petunjuk.

    Untuk informasi lebih lanjut tentang cara masuk ke konsol Kibana, lihat Masuk ke konsol Kibana.

    Catatan

    Dalam contoh ini, kluster Elasticsearch V6.7.0 digunakan. Operasi pada kluster versi lain mungkin berbeda. Operasi sebenarnya di konsol yang berlaku.

  2. Di panel navigasi sisi kiri halaman yang muncul, klik Dev Tools.

  3. Pada tab Console halaman yang muncul, jalankan salah satu perintah berikut untuk membuat indeks:

    • Perintah untuk kluster Elasticsearch versi lebih awal dari V7.0

      PUT /index
      {
         "mappings": {
              "fulltext": {
                  "properties": {
                      "content": {
                          "type": "text",
                          "analyzer": "aliws"
                      }
                  }
              }
          }
      }
    • Perintah untuk kluster Elasticsearch V7.0 atau lebih baru

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

    Dalam contoh ini, indeks bernama index dibuat. Pada versi lebih awal dari V7.0, tipe indeks adalah fulltext. Pada V7.0 atau lebih baru, tipe indeks adalah _doc. Indeks tersebut berisi properti content. Tipe propertinya adalah text. Selain itu, analizer aliws ditambahkan ke indeks.

    Jika perintah berhasil dijalankan, hasil berikut dikembalikan:

    {
      "acknowledged": true,
      "shards_acknowledged": true,
      "index": "index"
    }
  4. Jalankan perintah berikut untuk menambahkan dokumen:

    Penting

    Perintah berikut hanya cocok untuk kluster Elasticsearch versi lebih awal dari V7.0. Untuk kluster Elasticsearch V7.0 atau lebih baru, Anda harus mengubah fulltext menjadi _doc.

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

    Perintah sebelumnya menambahkan dokumen bernama 1 dan menetapkan nilai bidang content dalam dokumen menjadi I like go to school..

    Jika perintah berhasil dijalankan, hasil berikut dikembalikan:

    {
      "_index": "index",
      "_type": "fulltext",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 2,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
  5. Jalankan perintah berikut untuk mencari dokumen:

    Penting

    Perintah berikut hanya cocok untuk kluster Elasticsearch versi lebih awal dari V7.0. Untuk kluster Elasticsearch V7.0 atau lebih baru, Anda harus mengubah fulltext menjadi _doc.

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

    Perintah sebelumnya menggunakan analizer aliws untuk menganalisis semua dokumen tipe fulltext, dan mengembalikan dokumen yang memiliki school terkandung dalam bidang content.

    Jika perintah berhasil dijalankan, hasil berikut dikembalikan:

    {
      "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."
            }
          }
        ]
      }
    }
Catatan

Jika Anda gagal mendapatkan hasil yang diharapkan dengan menggunakan plugin analysis-aliws, lakukan pemecahan masalah berdasarkan petunjuk dalam Tes analizer dan Tes tokenizer.

Konfigurasikan kamus

Plugin analysis-aliws memungkinkan Anda mengunggah file kamus yang disesuaikan bernama aliws_ext_dict.txt. Setelah Anda mengunggah file kamus yang disesuaikan, semua node dalam kluster Elasticsearch Anda secara otomatis memuat file tersebut. Dalam hal ini, sistem tidak me-restart kluster.

Catatan
  • Setelah plugin analysis-aliws diinstal, tidak ada file kamus yang disediakan. Anda harus mengunggah file kamus yang disesuaikan secara manual.

  • Sebelum Anda mengunggah file kamus yang disesuaikan, pastikan bahwa file kamus tersebut memenuhi persyaratan berikut:

    • Nama: aliws_ext_dict.txt.

    • Format encoding: UTF-8.

    • Konten: Setiap baris berisi satu kata dan diakhiri dengan \n (line feed di UNIX atau Linux). Tidak ada karakter spasi yang digunakan sebelum dan sesudah kata ini. Jika file kamus dibuat di Windows, Anda harus menggunakan alat dos2unix untuk mengonversi file tersebut sebelum mengunggahnya.

  1. Masuk ke Konsol Elasticsearch Alibaba Cloud.

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

  3. Arahkan ke kluster yang diinginkan.

    1. Di bilah navigasi atas, pilih grup sumber daya tempat kluster berada dan wilayah tempat kluster berada.

    2. Pada halaman Elasticsearch Clusters, temukan kluster dan klik ID-nya.

  4. Di panel navigasi sisi kiri halaman yang muncul, 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. Di panel Configure Dictionary, klik Configure di pojok kiri bawah.

  7. Pilih metode untuk mengunggah file kamus. Lalu, unggah file kamus berdasarkan petunjuk berikut.

    • TXT File: Jika Anda memilih metode ini, klik Upload TXT File dan pilih file yang ingin Anda unggah dari mesin lokal Anda.

    • Add OSS File: Jika Anda memilih metode ini, konfigurasikan parameter Nama Bucket dan Nama File, dan klik Add.

      Pastikan bucket yang Anda tentukan berada di wilayah yang sama dengan kluster Elasticsearch. Jika konten kamus yang disimpan di Object Storage Service (OSS) berubah, Anda harus mengunggah file kamus lagi.

    Catatan

    analysis-aliws memungkinkan Anda mengunggah hanya satu file kamus. Jika Anda ingin memperbarui file kamus, Anda dapat mengklik x di sebelah nama file kamus aliws_ext_dict.txt untuk menghapus file kamus. Lalu, unggah file kamus baru.

  8. Klik Save.

    Sistem tidak me-restart kluster Anda tetapi melakukan pembaruan bergulir agar file kamus yang diunggah berlaku. Pembaruan membutuhkan waktu sekitar 10 menit.

    Catatan

    Jika Anda ingin mengunduh file kamus yang diunggah, klik ikon 下载按钮 yang sesuai dengan file tersebut.

Tes analizer

Jalankan perintah berikut untuk menguji analizer aliws:

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

Jika perintah berhasil dijalankan, hasil berikut dikembalikan:

{
  "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
    }
  ]
}

Tes tokenizer

Jalankan perintah berikut untuk menguji tokenizer aliws_tokenizer:

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

Jika perintah berhasil dijalankan, hasil berikut dikembalikan:

{
  "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
    }
  ]
}

Sesuaikan tokenizer

  • Setelah plugin analysis-aliws melakukan tokenisasi pada data, filter berikut melakukan operasi terkait pada data: stemmer, lowercase, porter_stem, dan stop. Jika Anda ingin menggunakan filter ini untuk tokenizer kustom Anda, Anda dapat menambahkan tokenizer aliws_tokenizer dari plugin analysis-aliws ke tokenizer kustom Anda dan menambahkan konfigurasi filter berdasarkan kebutuhan bisnis Anda. Kode berikut memberikan contoh. Anda dapat menggunakan bidang stopwords untuk mengonfigurasi stopwords.

    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"
           ]
          }
         }
        }
        }
    }
    Catatan

    Jika Anda tidak memerlukan filter, Anda dapat menghapus konfigurasi filter tersebut.

  • aliws_tokenizer memungkinkan Anda menggunakan sinonim untuk mengonfigurasi tokenizer kustom. Metode konfigurasi sama dengan yang digunakan untuk plugin analysis-ik. Untuk informasi lebih lanjut, lihat Gunakan sinonim.

FAQ

  • Huruf di akhir kata hilang setelah kata tersebut di-tokenisasi menggunakan tokenizer aliws_tokenizer. Sebagai contoh, hasil tokenisasi dari iPhone dan Chinese adalah Iphon dan chines. Huruf e di akhir hilang. Apa yang harus saya lakukan?

    • Penyebab: aliws_tokenizer melakukan stemming kata setelah tokenisasi. Akibatnya, huruf e di akhir setiap kata dihapus.

    • Solusi: Jalankan perintah berikut, di mana bidang my_custom_analyzer ditentukan dalam bagian konfigurasi analisis dan bagian konfigurasi filter dihapus:

      PUT my-index1
      {
          "settings": {
              "number_of_shards": 1,
              "analysis": {
                  "analyzer": {
                      "my_custom_analyzer": {
                          "type": "custom",
                          "tokenizer": "aliws_tokenizer"
                      }
                  }
              }
          }
      }
    • Verifikasi: Jalankan perintah berikut untuk memeriksa apakah hasil tokenisasi memenuhi harapan:

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

Referensi

  • Untuk informasi tentang plugin yang disediakan oleh Alibaba Cloud Elasticsearch, lihat Ikhtisar plugin.

  • Untuk informasi tentang cara memanggil operasi API untuk menginstal plugin bawaan, lihat InstallSystemPlugin.

  • Untuk informasi tentang cara memanggil operasi API untuk memperbarui file kamus plugin analysis-aliws, lihat UpdateAliwsDict.

  • Untuk informasi tentang cara memanggil operasi API untuk mendapatkan plugin yang diinstal pada kluster Elasticsearch, lihat ListPlugins.