Elasticsearch oficiālais noklusējuma vārdu segmentācijas spraudnis nav ideāli piemērots ķīniešu vārdu segmentācijai. Piemēram, tagad es ņemšu konkrētu piemēru, lai parādītu, kāpēc ES oficiālajā vietnē nodrošinātais vārdu segmentācijas spraudnis nav efektīvs ķīniešu vārdu segmentēšanai. Atsauces dokumentācija:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Mēs iesniedzam datus analīzes saskarnē šādi:
http://ip:9200/_analyze POST请求
Ja izmantojat Elasticsearch tieši, jūs noteikti saskarsieties ar mulsinošām problēmām, strādājot ar ķīniešu satura meklējumiem.Ķīniešu vārdi tiek sadalīti ķīniešu rakstzīmēs pa vienamIzmantojot Kibana, lai zīmētu, grupējiet pēc termina, un rezultātā ķīniešu rakstzīme tiek sadalīta grupā.
Par laimi, ir divi ķīniešu vārdu segmentācijas spraudņi, ko rakstījis medcl (viens no agrākajiem cilvēkiem, kas pētīja ES Ķīnā), viens ir ik un viens ir mmseg, un tālāk tikai iepazīstina ar ik lietošanu.
IK analīzes spraudnis integrē Lucene IK analizatoru elasticsearch un atbalsta pielāgotas vārdnīcas.
elasticsearch-analysis-ik projekta adrese:https://github.com/medcl/elasticsearch-analysis-ik
Instalējiet elasticsearch-analysis-ik
Pirmkārt, pārtrauciet Elasticsearch darbību, JPS atrod procesa ID un nogaliniet to ar nogalināt -9 procesa ID! (Es to nepārbaudīju, jebkurā gadījumā, tas ir drošāk apstāties un instalēt)
Instalēt, izmantojot elasticsearch-plugin (atbalstīts no v5.5.1 versijas):
Piezīme: Aizstāt 6.3.0 ar savu versiju elasticsearch
Es to instalēju savā serverīElasticsearch ir 6.5.2versija, tātad komanda ir šāda:
Instalēšanas kļūda ir šāda:
Izņēmums pavedienā "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Darbība nav atļauta
Elasticsearch instalēšanas spraudnis ir jāpalaiž kā sakneTātad, mēs izmantojam su root, lai pārslēgtos uz administratora statusu, atkārtoti veiktu instalēšanu, un tā ir veiksmīga, kā parādīts zemāk redzamajā attēlā:
Mēs pārbaudām, vēlreiz iesniedzot ziņu pieprasījumu saskarnē, un ziņas saturs ir šāds:
Es atklāju, ka es varu normāli saprast mūsu semantiku, un sadalīju "arhitekts", "skaists" un "arhitektūra" vienā vārdā.
Kāda ir atšķirība starp ik_max_word un ik_smart?
ik_max_word: Teksts tiks sadalīts vissīkākajā detalizācijā, piemēram, "Ķīnas Tautas Republikas valsts himna" tiks sadalīta "Ķīnas Tautas Republika, Ķīnas tauta, Ķīna, Ķīna, Tautas Republika, Tauta, Tauta, Republika, Republika, Viņš, Nacionālā himna", un izsmels visas iespējamās kombinācijas;
ik_smart: Tas veiks visrupjāko sadalīšanas līmeni, piemēram, "Ķīnas Tautas Republikas valsts himnu" sadalīs "Ķīnas Tautas Republikas valsts himnā".
|