Oficialus numatytasis elasticsearch žodžių segmentavimo papildinys nėra idealus kinų kalbos žodžių segmentavimui. Pavyzdžiui, dabar paimsiu konkretų pavyzdį, kad parodyčiau, kodėl oficialioje ES svetainėje pateiktas žodžių segmentavimo papildinys nėra veiksmingas kinų kalbos žodžių segmentavimui. Informaciniai dokumentai:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Analizės sąsajai pateikiame duomenis taip:
http://ip:9200/_analyze POST请求
Jei naudojate "Elasticsearch" tiesiogiai, tikrai susidursite su gėdingomis problemomis atlikdami kinų turinio paieškas.Kinų žodžiai po vieną skirstomi į kinų rašmenisKai naudojate "Kibana" piešimui, grupuokite pagal terminą, todėl kinų simbolis yra padalintas į grupę.
Laimei, yra du kinų žodžių segmentavimo įskiepiai parašyta medcl (vienas iš ankstyviausių žmonių studijuoti ES Kinijoje), vienas yra ik ir vienas yra mmseg, ir toliau tik pristato ik naudojimą.
IK analizės papildinys integruoja Lucene IK analizatorių į elasticsearch ir palaiko pasirinktinius žodynus.
Elasticsearch-analysis-ik projekto adresas:https://github.com/medcl/elasticsearch-analysis-ik
Įdiekite elasticsearch-analysis-ik
Pirma, sustabdyti Elasticsearch veikia, JPS randa proceso ID, ir nužudyti jį su nužudyti -9 proceso ID! (Aš vis tiek neišbandžiau, bet kokiu atveju, saugiau sustabdyti ir įdiegti)
Įdiekite naudodami elasticsearch-plugin (palaikoma nuo v5.5.1 versijos):
Pastaba: Pakeiskite 6.3.0 savo elasticsearch versija
Įdiegiau jį savo serveryjeElasticsearch yra 6.5.2versija, taigi komanda yra tokia:
Diegimo klaida yra tokia:
Išimtis gijoje "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Operacija neleidžiama
"Elasticsearch" diegimo papildinys turi būti paleistas kaip rootTaigi, mes naudojame su root, kad pereitume į administratoriaus būseną, iš naujo atliktume diegimą ir jis būtų sėkmingas, kaip parodyta paveikslėlyje žemiau:
Mes testuojame dar kartą pateikdami įrašo užklausą į sąsają, o įrašo turinys yra toks:
Pastebėjau, kad galiu normaliai suprasti mūsų semantiką, ir suskirsčiau "architektas", "gražus" ir "architektūra" į vieną žodį.
Kuo skiriasi ik_max_word ir ik_smart?
ik_max_word: Tekstas bus padalintas į smulkiausias detales, pvz., "Kinijos Liaudies Respublikos himnas" bus padalintas į "Kinijos Liaudies Respublika, Kinijos liaudis, Kinija, Kinija, Kinijos, Liaudies Respublika, Tauta, Tauta, Tauta, Respublika, Jis, Nacionalinis himnas", ir išnaudos visus įmanomus derinius;
ik_smart: Tai padarys šiurkščiausią padalijimo lygį, pavyzdžiui, "Kinijos Liaudies Respublikos himną" padalins į "Kinijos Liaudies Respublikos nacionalinį himną".
|