Pluginul oficial implicit de segmentare a cuvintelor, elasticsearch, nu este ideal pentru segmentarea cuvintelor în chineză. De exemplu, voi lua acum un exemplu specific pentru a arăta de ce pluginul de segmentare a cuvintelor oferit de site-ul oficial ES nu este eficient pentru segmentarea cuvintelor în chineză. Documentație de referință:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Trimitem o bucată de date către interfața de analiză, după cum urmează:
http://ip:9200/_analyze POST请求
Dacă folosești direct Elasticsearch, cu siguranță vei întâmpina probleme jenante când te confrunți cu căutările de conținut chinezesc.Cuvintele chinezești sunt împărțite în caractere chinezești, unul câte unulCând folosești Kibana pentru a desena, grupează după termen, iar ca rezultat, un caracter chinezesc este împărțit într-un grup.
Din fericire, există două plug-in-uri pentru segmentarea cuvintelor chinezești scrise de medcl (unul dintre primii oameni care au studiat ES în China), unul este ik și unul este mmseg, iar următorul introduce doar utilizarea ik.
Pluginul IK Analysis integrează analizatorul Lucene IK în elasticsearch și suportă dicționare personalizate.
Adresa proiectului elasticsearch-analysis-ik:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
Mai întâi, oprește rularea Elasticsearch, JPS găsește ID-ul procesului și îl oprește cu kill -9 process ID! (Oricum nu l-am testat, oricum e mai sigur să mă opresc și să-l instalez)
Instalare folosind elasticsearch-plugin (suportat din versiunea v5.5.1):
Notă: Înlocuiește versiunea 6.3.0 cu propria ta versiune de elasticsearch
L-am instalat pe serverul meuElasticsearch este 6.5.2Deci, comanda este următoarea:
Eroarea de instalare este următoarea:
Excepție în firul "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Operațiunea nu este permisă
Pluginul de instalare Elasticsearch trebuie rulat ca rootAșadar, folosim su root pentru a trece la statutul de administrator, a reface instalarea și a reușit, așa cum se arată în figura de mai jos:
Testăm trimițând din nou o cerere de postare către interfață, iar conținutul postării este următorul:
Am descoperit că pot înțelege semantica noastră în mod normal și am împărțit "arhitect", "frumos" și "arhitectură" într-un singur cuvânt.
Care este diferența dintre ik_max_word și ik_smart?
ik_max_word: Textul va fi împărțit în cele mai fine detalii, cum ar fi "Imnul Național al Republicii Populare Chineze" care va fi împărțit în "Republica Populară Chineză, Poporul Chinez, China, Chineza, Republica Populară, Poporul, Poporul, Republica, Republica, El, Imnul Național", și va epuiza toate combinațiile posibile;
ik_smart: Va face cel mai grosier nivel de divizare, cum ar fi împărțirea "Imnului Național al Republicii Populare Chineze" în "Imnul Național al Republicii Populare Chineze".
|