Az ElasticSearch hivatalos alapértelmezett szószegmentációs bővítménye nem ideális kínai szószegmentáláshoz. Például most egy konkrét példát fogok hozni, hogy megmutassam, miért nem hatékony az ES hivatalos weboldalán található szószegmentációs bővítmény kínai szószegmentálásra. Referencia dokumentáció:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Az elemzési felülethez az alábbi adatokat küldjük be:
http://ip:9200/_analyze POST请求
Ha közvetlenül a Elasticsearch-et használod, biztosan kínos problémákkal találkozhatsz kínai tartalomkeresés során.A kínai szavakat egyenként kínai karakterekre osztjákKibana rajzoláskor csoportosítsunk kifejezés szerint, és ennek eredményeként egy kínai karaktert csoportra osztunk.
Szerencsére két kínai szószegmentációs bővítmény létezik, amelyeket medcl ír (az egyik legkorábbi személy, aki Kínában az ES-t tanulmányozta), az egyik az ik, a másik az mmseg, és a következő csak az ik használatát mutatja be.
Az IK Analysis plugin integrálja a Lucene IK analizátort a ElasticSearch-be, és támogatja az egyedi szótárokat.
Elasticsearch-analysis-ik projektcím:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
Először állítsd le az Elasticsearch futtatását, a JPS megtalálja a folyamatazonosítót, és megöld a kill -9 process ID-vel! (Amúgy sem teszteltem, amúgy is biztonságosabb megállítani és telepíteni)
Telepítés elasticsearch-plugin használatával (támogatva a v5.5.1 verziótól):
Megjegyzés: Cseréld le a 6.3.0-t a saját ElasticSearch verziódra
Telepítettem a szerveremreElasticsearch 6.5.2verzió, tehát a parancs a következő:
A telepítési hiba a következő:
Kivétel a "main" java.nio.file.FileSystemException szálban: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Művelet nem engedélyezett
Az Elasticsearch telepítő plugint root formátumban kell futtatniTehát a su rootot használjuk, hogy adminisztrátori státuszra váltsunk, újra elvégezzük a telepítést, és sikeres lesz, ahogy az alábbi ábrán is látható:
A tesztelést úgy teszteljük, hogy újra posztkérést küldünk be a felületre, és a bejegyzés tartalma a következő:
Rájöttem, hogy normálisan értem a szemantikánkat, és egy szóban osztottam a "architect", "beautiful" és "architecture" szavakat.
Mi a különbség ik_max_word és ik_smart között?
ik_max_word: A szöveget a legfinomabb részletességekre bontják, például a "Kínai Népköztársaság himnusza" a "Kínai Népköztársaság, Kínai Nép, Kína, Kínai, Népköztársaság, Népi, Nép, Nép, Köztársaság, Köztársaság, Himnusz", és minden lehetséges kombinációt kimerít;
ik_smart: Ez a legdurvább szintű szétválasztást fogja végrehajtani, például a "Kínai Népköztársaság himnuszát" "Kínai Népköztársaság himnuszává" választaná.
|