Elasticsearch'in resmi varsayılan kelime segmentasyonu eklentisi, Çince kelime segmentasyonu için ideal değildir. Örneğin, şimdi ES'nin resmi web sitesi tarafından sağlanan kelime segmentasyon eklentisinin Çince kelime segmentasyonu için neden etkili olmadığını göstermek için özel bir örnek alacağım. Referans Dokümantı:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Analiz arayüzüne aşağıdaki gibi bir veri gönderiyoruz:
http://ip:9200/_analyze POST请求
Doğrudan Elasticsearch kullanırsanız, Çin içerik aramalarında utanç verici sorunlarla karşılaşabilirsiniz.Çince kelimeleri teker teker Çin karakterlerine ayrılırKibana kullanılarak çizim yapılırken, terime göre gruplanır ve sonuç olarak bir Çin karakteri bir gruba bölünür.
Neyse ki, medcl tarafından yazılmış iki Çince kelime segmentasyon eklentisi vardır (Çin'de ES'yi inceleyen ilk kişilerden biri), biri ik, diğeri mmseg, ve aşağıdaki sadece ik kullanımını tanıtıyor.
IK Analysis eklentisi, Lucene IK analizörünü elasticsearch'e entegre eder ve özel sözlükleri destekler.
elasticsearch-analysis-ik proje adresi:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
Önce Elasticsearch'i durdurun, JPS süreç ID'sini bulur ve kill -9 process ID ile onu öldürün! (Zaten test etmedim, zaten durdurup kurmak daha güvenli)
Elasticsearch-eklentisi kullanarak kurulum (v5.5.1 sürümünden itibaren destekleniyor):
Not: 6.3.0'ı kendi elasticsearch sürümünüzle değiştirin
Sunucuma yükledimElasticsearch 6.5.2 sürümüdürVersiyon olarak verilen komut şu şekildedir:
Kurulum hatası şöyledir:
"Ana" iş parçacığında istisna. java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: İşleme izin verilmiyor
Elasticsearch kurulum eklentisi root olarak çalıştırılmalıdırBu yüzden, su root kullanarak yönetici statüsüne geçiyoruz, kurulumu tekrar gerçekleştiriyoruz ve aşağıdaki şekilde gösterildiği gibi başarılı oluyor:
Arayüze tekrar gönderi talebi göndererek test ediyoruz ve gönderi içeriği şu şekildedir:
Anlamlarımızı normal şekilde anlayabildiğimi fark ettim ve "mimar", "güzel" ve "mimari" kelimelerini tek kelimeye ayırdım.
ik_max_word ile ik_smart arasındaki fark nedir?
ik_max_word: Metin en ince ayrıntıya ayrılacak, örneğin "Çin Halk Cumhuriyeti Ulusal Marşı" "Çin Halk Cumhuriyeti, Çin Halkı, Çin, Çin, Halk Cumhuriyeti, Halk, Halk, Halk, Cumhuriyet, Cumhuriyet, Cumhuriyet, He, Ulusal Marş" şeklinde bölünecek ve mümkün olan tüm kombinasyonları tükenecek;
ik_smart: Bu, "Çin Halk Marşı"nın "Çin Halk Marşı"na bölünmesi gibi en kaba bölünme düzeyini yapacak.
|