Plugin tokenisasi AliNLP, juga dikenal sebagai analysis-aliws, merupakan plugin bawaan Alibaba Cloud Elasticsearch. Setelah Anda menginstal plugin ini pada kluster Elasticsearch Anda, 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 khusus. Setelah diunggah, sistem akan melakukan rolling update pada kluster Elasticsearch agar file kamus tersebut berlaku.
Pendahuluan
Setelah plugin analysis-aliws diinstal, analyzer dan tokenizer berikut secara default diintegrasikan ke dalam kluster Elasticsearch Anda. Anda dapat menggunakan keduanya untuk mencari dokumen serta mengunggah file kamus khusus ke plugin ini.
-
Analyzer: Analyzer
aliwsmempertahankan kata fungsi, frasa, dan simbol, serta mengonversi semua karakter alfabet Inggris kapital menjadi huruf kecil. -
Tokenizer: aliws_tokenizer
-
Untuk informasi lebih lanjut, lihat Gunakan analyzer aliws untuk mencari dokumen dan Konfigurasi kamus.
-
Jika hasil yang Anda peroleh tidak sesuai ekspektasi saat menggunakan plugin analysis-aliws, lakukan pemecahan masalah berdasarkan petunjuk dalam Uji analyzer dan Uji tokenizer.
-
Anda dapat menyesuaikan tokenizer. Untuk informasi lebih lanjut, lihat Sesuaikan tokenizer.
Prasyarat
Plugin analysis-aliws harus sudah diinstal. Plugin ini tidak diinstal secara default. Untuk informasi lebih lanjut tentang cara menginstal plugin, lihat Instal dan hapus plugin bawaan.
Menginstal atau menguninstall plugin analysis-aliws akan memicu restart bergulir (rolling restart) pada kluster. Node akan direstart satu per satu, dan status kluster berubah dari hijau ke kuning selama proses restart. Kluster tetap tersedia selama proses ini, tetapi beban pada node sehat yang tersisa meningkat dan kinerja mungkin terpengaruh. Kami menyarankan Anda melakukan operasi ini pada jam sepi.
Batasan
-
Ukuran memori node data pada kluster Elasticsearch Anda harus 8 GiB atau lebih. Jika ukuran memori node data pada kluster Anda tidak memenuhi persyaratan, lakukan peningkatan konfigurasi kluster Anda. Untuk informasi lebih lanjut, lihat Tingkatkan konfigurasi kluster.
-
Kluster Elasticsearch V5.X, kluster Elasticsearch V8.X, dan kluster Elasticsearch Edisi Kernel-enhanced tidak mendukung plugin analysis-aliws. Anda dapat memeriksa apakah kluster Anda mendukung plugin ini di Konsol Elasticsearch.
Gunakan analyzer aliws untuk mencari dokumen
Masuk ke Konsol Kibana kluster Elasticsearch Anda.
Untuk petunjuknya, lihat Masuk ke Konsol Kibana.
CatatanContoh di sini menggunakan Elasticsearch V6.7.0. Operasi mungkin sedikit berbeda untuk versi lainnya.
Pada bilah navigasi kiri, pilih .
-
Di Console, jalankan salah satu perintah berikut untuk membuat indeks.
-
Perintah untuk kluster Elasticsearch versi sebelum V7.0
PUT /index { "mappings": { "fulltext": { "properties": { "content": { "type": "text", "analyzer": "aliws" } } } } } -
Perintah untuk kluster Elasticsearch V7.0 atau yang lebih baru
PUT /index { "mappings": { "properties": { "content": { "type": "text", "analyzer": "aliws" } } } }
Dalam contoh ini, dibuat indeks bernama index. Pada versi sebelum V7.0, tipe indeks adalah fulltext. Pada V7.0 atau yang lebih baru, tipe indeks adalah _doc. Indeks berisi properti content dengan tipe text, dan analyzer aliws ditambahkan ke indeks tersebut.
Jika perintah berhasil dijalankan, hasil berikut dikembalikan:
{ "acknowledged": true, "shards_acknowledged": true, "index": "index" } -
-
Jalankan perintah berikut untuk menambahkan dokumen:
PentingPerintah berikut hanya berlaku untuk kluster Elasticsearch versi sebelum V7.0. Untuk kluster Elasticsearch V7.0 atau yang lebih baru, Anda harus mengganti fulltext dengan _doc.
POST /index/fulltext/1 { "content": "I like go to school." }Perintah di atas menambahkan dokumen bernama 1 dan mengatur nilai bidang content 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 } -
Jalankan perintah berikut untuk mencari dokumen:
PentingPerintah berikut hanya berlaku untuk kluster Elasticsearch versi sebelum V7.0. Untuk kluster Elasticsearch V7.0 atau yang lebih baru, Anda harus mengganti fulltext dengan _doc.
GET /index/fulltext/_search { "query": { "match": { "content": "school" } } }Perintah di atas menggunakan analyzer aliws untuk menganalisis semua dokumen bertipe fulltext dan mengembalikan dokumen yang memiliki kata school pada 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." } } ] } }
Jika hasil yang Anda peroleh tidak sesuai ekspektasi saat menggunakan plugin analysis-aliws, lakukan pemecahan masalah berdasarkan petunjuk dalam Uji analyzer dan Uji tokenizer.
Konfigurasi kamus
Plugin analysis-aliws memungkinkan Anda mengunggah file kamus khusus bernama aliws_ext_dict.txt. Setelah Anda mengunggah file kamus khusus, semua node dalam kluster Elasticsearch akan memuat file tersebut secara otomatis tanpa memerlukan restart kluster.
-
Setelah plugin analysis-aliws diinstal, tidak tersedia file kamus. Anda harus mengunggah file kamus khusus secara manual.
-
Sebelum mengunggah file kamus khusus, pastikan file tersebut memenuhi persyaratan berikut:
-
Nama: aliws_ext_dict.txt.
-
Format encoding: UTF-8.
-
Isi: Setiap baris harus berisi satu kata tanpa spasi di awal atau akhir. Gunakan akhir baris UNIX atau Linux (karakter newline,
\n). Jika file dibuat di Windows, Anda harus mengonversinya menggunakan tool seperti dos2unix pada mesin Linux sebelum mengunggahnya.
-
Masuk ke Konsol Alibaba Cloud Elasticsearch.
Pada bilah navigasi kiri, pilih Elasticsearch Clusters.
Arahkan ke kluster target.
Pada bilah navigasi atas, pilih kelompok sumber daya tempat kluster berada dan wilayah tempat kluster tersebut berlokasi.
Pada halaman Elasticsearch Clusters, temukan kluster tersebut dan klik ID-nya.
-
Pada panel navigasi kiri, pilih .
-
Pada tab Built-in Plug-ins, temukan plugin analysis-aliws dan klik Configure Dictionary pada kolom Actions.
-
Di bagian bawah panel Configure Dictionary, klik Configure.
-
Pilih metode untuk mengunggah file kamus, lalu unggah file tersebut sesuai petunjuk berikut.
-
TXT File: Klik Upload TXT File dan pilih file kamus dari mesin lokal Anda.
-
Add OSS File: Masukkan nama Bucket dan nama Object, lalu klik Add.
Pastikan bucket yang Anda tentukan berada di wilayah yang sama dengan kluster Elasticsearch. Jika isi kamus yang disimpan di Object Storage Service (OSS) berubah, Anda harus mengunggah ulang file kamus tersebut.
Catatananalysis-aliws hanya memungkinkan Anda mengunggah satu file kamus. Jika ingin memperbarui file kamus, klik tombol x di samping nama file kamus aliws_ext_dict.txt untuk menghapus file tersebut, lalu unggah file kamus baru.
-
-
Klik Save.
Sistem tidak akan merestart kluster Anda, tetapi akan melakukan rolling update agar file kamus yang diunggah berlaku. Proses pembaruan memerlukan waktu sekitar 10 menit.
CatatanJika ingin mengunduh file kamus yang telah diunggah, klik ikon
yang sesuai dengan file tersebut.
Uji analyzer
Jalankan perintah berikut untuk menguji analyzer 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
}
]
}
Uji 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 menjalankan operasi terkait pada data tersebut: stemmer, lowercase, porter_stem, dan stop. Jika Anda ingin menggunakan filter-filter ini untuk tokenizer kustom Anda, tambahkan tokenizer aliws_tokenizer dari plugin analysis-aliws ke tokenizer kustom dan konfigurasikan filter sesuai kebutuhan bisnis Anda. Contoh kode berikut menunjukkan cara melakukannya. 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" ] } } } } }CatatanJika Anda tidak memerlukan filter tertentu, Anda dapat menghapus konfigurasi filter tersebut.
-
aliws_tokenizer memungkinkan Anda menggunakan sinonim untuk mengonfigurasi tokenizer kustom. Metode konfigurasinya sama dengan yang digunakan untuk plugin analysis-ik. Untuk informasi lebih lanjut, lihat Gunakan sinonim.
FAQ
-
Bagaimana cara mengonfigurasi plugin analysis-aliws? Apa format file kamus untuk plugin ini?
-
Apa perbedaan antara sinonim Elasticsearch, token IK, dan token AliNLP?
-
Analyzer aliws mungkin menghapus huruf terakhir dari sebuah kata selama proses tokenisasi. Misalnya, tokenisasi
iPhonedanChinesemenghasilkanIphondanchines, karena hurufeterakhir dihapus.-
Penyebab: Analyzer
aliwsdefault menerapkan filter stemming setelah tokenisasi, yang menghapus huruf sepertieterakhir dari kata-kata. -
Solusi: Jalankan perintah berikut, di mana bidang my_custom_analyzer ditentukan dalam bagian konfigurasi analisis dan 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 sesuai ekspektasi:
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.