Plugin segmentasi kata default resmi elasticsearch tidak ideal untuk segmentasi kata Cina. Misalnya, sekarang saya akan mengambil contoh spesifik untuk menunjukkan mengapa plugin segmentasi kata yang disediakan oleh situs web resmi ES tidak efektif untuk segmentasi kata Cina. Dokumentasi Referensi:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Kami mengirimkan sepotong data ke antarmuka analisis, sebagai berikut:
http://ip:9200/_analyze POST请求
Jika Anda menggunakan Elasticsearch secara langsung, Anda pasti akan menghadapi masalah yang memalukan saat berhadapan dengan pencarian konten Cina.Kata-kata Cina dibagi menjadi karakter Cina satu per satuSaat menggunakan Kibana untuk menggambar, kelompokkan menurut istilah, dan sebagai hasilnya, karakter Cina dibagi menjadi satu kelompok.
Untungnya, ada dua plug-in segmentasi kata Cina yang ditulis oleh medcl (salah satu orang paling awal yang mempelajari ES di Cina), satu adalah ik dan satu lagi adalah mmseg, dan berikut ini hanya memperkenalkan penggunaan ik.
Plugin IK Analysis mengintegrasikan penganalisis Lucene IK ke dalam elasticsearch dan mendukung kamus khusus.
Alamat proyek elasticsearch-analysis-ik:https://github.com/medcl/elasticsearch-analysis-ik
Instal elasticsearch-analysis-ik
Pertama, hentikan Elasticsearch berjalan, JPS menemukan ID proses, dan matikan dengan ID proses kill -9! (Lagipula saya tidak mengujinya, lebih aman untuk berhenti dan menginstal)
Instal menggunakan elasticsearch-plugin (didukung dari versi v5.5.1):
Catatan: Ganti 6.3.0 dengan versi elasticsearch Anda sendiri
Saya menginstalnya di server sayaElasticsearch adalah 6.5.2version, jadi, perintahnya adalah sebagai berikut:
Kesalahan instalasi adalah sebagai berikut:
Pengecualian di utas "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Operasi tidak diizinkan
Plugin instalasi Elasticsearch perlu dijalankan sebagai rootJadi, kami menggunakan su root untuk beralih ke status administrator, melakukan ulang instalasi, dan berhasil, seperti yang ditunjukkan pada gambar di bawah ini:
Kami menguji dengan mengirimkan permintaan posting ke antarmuka lagi, dan konten postingan adalah sebagai berikut:
Saya menemukan bahwa saya dapat memahami semantik kita secara normal, dan membagi "arsitek", "cantik", dan "arsitektur" menjadi satu kata.
Apa perbedaan antara ik_max_word dan ik_smart?
ik_max_word: Teks akan dibagi menjadi granularitas terbaik, seperti "Lagu Kebangsaan Republik Rakyat Tiongkok" akan dibagi menjadi "Republik Rakyat Tiongkok, Rakyat Tiongkok, Tiongkok, Cina, Republik Rakyat, Rakyat, Rakyat, Republik, Republik, Dia, Lagu Kebangsaan", dan akan menghabiskan semua kombinasi yang mungkin;
ik_smart: Ini akan melakukan tingkat pemisahan yang paling kasar, seperti membagi "Lagu Kebangsaan Republik Rakyat Tiongkok" menjadi "Lagu Kebangsaan Republik Rakyat Tiongkok".
|