Elasticsearchin virallinen oletussanojen segmentointilisäosa ei ole ihanteellinen kiinalaiseen sanasegmentointiin. Esimerkiksi otan nyt konkreettisen esimerkin osoittaakseni, miksi ES:n virallisen verkkosivuston tarjoama sanasegmentointilisäosa ei ole tehokas kiinalaisessa sanasegmentoinnissa. Viitedokumentaatio:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Lähetämme analyysirajapinnalle datan seuraavasti:
http://ip:9200/_analyze POST请求
Jos käytät Elasticsearchia suoraan, kohtaat varmasti noloja ongelmia kiinalaisen sisällön hauissa.Kiinalaiset sanat jaetaan kiinalaisiin merkkeihin yksi kerrallaanKun käytetään Kibanaa piirtämiseen, ryhmittele termin mukaan, ja siksi kiinalainen merkki jaetaan ryhmään.
Onneksi on olemassa kaksi kiinalaista sanasegmentointilisäosaa, jotka on kirjoittanut medcl (yksi varhaisimmista henkilöistä, jotka opiskelivat ES:ää Kiinassa), toinen on ik ja toinen mmseg, ja seuraava esittelee vain ik:n käytön.
IK Analysis -lisäosa integroi Lucene IK -analysaattorin elasticsearchiin ja tukee mukautettuja sanakirjoja.
elasticsearch-analysis-ik -projektin osoite:https://github.com/medcl/elasticsearch-analysis-ik
Asenna elasticsearch-analysis-ik
Ensiksi pysäytä Elasticsearchin käynnistyminen, JPS löytää prosessi-ID:n, ja tapa se kill -9 process ID:llä! (En kuitenkaan testannut sitä, mutta on turvallisempaa pysäyttää ja asentaa)
Asennus elasticsearch-pluginilla (tuettu versiosta v5.5.1):
Huomautus: Korvaa versio 6.3.0 omalla elasticsearch-versiollasi
Asensin sen palvelimelleniElasticsearch on versio 6.5.2versio, joten komento on seuraava:
Asennusvirhe on seuraava:
Poikkeus säikeessä "pää" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Toiminto ei sallittu
Elasticsearch-asennuslaajennus täytyy ajaa root-muodossaKäytämme su rootia vaihtaaksemme järjestelmänvalvojan tilaan, suorittaaksemme asennuksen uudelleen, ja se onnistuu, kuten alla olevassa kuvassa näkyy:
Testaamme lähettämällä viestipyynnön uudelleen käyttöliittymään, ja julkaisun sisältö on seuraava:
Huomasin ymmärtäväni semantiikkamme normaalisti ja jaoin "arkkitehti", "kaunis" ja "arkkitehtuuri" yhteen sanaan.
Mikä on ero ik_max_word:n ja ik_smart:n välillä?
ik_max_word: Teksti jaetaan yksityiskohtiin, kuten "Kiinan kansantasavallan kansallislaulu" jaetaan muotoon "Kiinan kansantasavalta, kiinalaiset kansat, Kiina, Kiina, kansantasavalta, kansa, tasavalta, tasavalta, hän, kansallislaulu", ja kaikki mahdolliset yhdistelmät käydään läpi;
ik_smart: Se tekee karkeimman tason jakoja, kuten jakaa "Kiinan kansantasavallan kansallislaulun" "Kiinan kansantasavallan kansallislauluksi".
|