Il plugin ufficiale di segmentazione delle parole di forma predefinito di elasticsearch non è ideale per la segmentazione delle parole cinesi. Ad esempio, ora prenderò un esempio specifico per mostrare perché il plugin di segmentazione delle parole fornito dal sito ufficiale di ES non è efficace per la segmentazione delle parole cinesi. Documentazione di riferimento:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Inviiamo un dato all'interfaccia di analisi, come segue:
http://ip:9200/_analyze POST请求
Se usi direttamente Elasticsearch, incontrerai sicuramente problemi imbarazzanti quando si tratta di ricerche di contenuti cinesi.Le parole cinesi sono suddivise in caratteri cinesi uno per unoQuando si usa Kibana per disegnare, raggrupparsi secondo il termine e, di conseguenza, un carattere cinese viene diviso in un gruppo.
Fortunatamente, esistono due plug-in per la segmentazione delle parole cinesi scritti da medcl (uno dei primi a studiare ES in Cina), uno è ik e uno mmseg, e il seguente introduce solo l'uso di ik.
Il plugin IK Analysis integra l'analizzatore Lucene IK in elasticsearch e supporta dizionari personalizzati.
Indirizzo del progetto elasticsearch-analysis-ik:https://github.com/medcl/elasticsearch-analysis-ik
Installa elasticsearch-analysis-ik
Prima di tutto, ferma l'esecuzione di Elasticsearch, JPS trova l'ID del processo e lo uccidi con kill -9 ID di processo! (Non l'ho comunque testato, comunque è più sicuro fermarsi e installare)
Installa usando elasticsearch-plugin (supportato dalla versione v5.5.1):
Nota: Sostituisci la 6.3.0 con la tua versione di elasticsearch
L'ho installato sul mio serverElasticsearch è la 6.5.2Quindi, il comando è il seguente:
L'errore di installazione è il seguente:
Eccezione nel thread "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: Operazione non permessa
Il plugin di installazione Elasticsearch deve essere eseguito come rootQuindi, usiamo su root per passare allo status di amministratore, rieseguire l'installazione e ha successo, come mostrato nella figura sottostante:
Testiamo inviando nuovamente una richiesta di post all'interfaccia, e il contenuto del post è il seguente:
Ho scoperto di riuscire a capire normalmente la nostra semantica e ho diviso "architetto", "bello" e "architettura" in una sola parola.
Qual è la differenza tra ik_max_word e ik_smart?
ik_max_word: Il testo sarà suddiviso nella massima granularità, come ad esempio l'"Inno Nazionale della Repubblica Popolare Cinese" sarà suddiviso in "Repubblica Popolare Cinese, Popolo Cinese, Cina, Cinese, Repubblica Popolare, Popolo, Popolo, Popolo, Repubblica, Repubblica, Elui, Inno Nazionale", e esaurirà tutte le possibili combinazioni;
ik_smart: Farà il livello più grossolano di scissione, come la divisione dell'"Inno Nazionale della Repubblica Popolare Cinese" in "Inno Nazionale della Repubblica Popolare Cinese".
|