El complemento oficial de segmentación de palabras por defecto de elasticsearch no es ideal para segmentación de palabras en chino. Por ejemplo, ahora voy a tomar un ejemplo específico para mostrar por qué el plugin de segmentación de palabras proporcionado por la web oficial de ES no es efectivo para la segmentación de palabras en chino. Documentación de referencia:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
Enviamos un dato a la interfaz de análisis, de la siguiente manera:
http://ip:9200/_analyze POST请求
Si usas Elasticsearch directamente, sin duda te encontrarás con problemas embarazosos al tratar con búsquedas de contenido en chino.Las palabras chinas se dividen en caracteres chinos una a unaAl usar Kibana para dibujar, agrupa según el término y, como resultado, un carácter chino se divide en un grupo.
Afortunadamente, existen dos complementos de segmentación de palabras chinas escritos por medcl (una de las primeras personas en estudiar ES en China): uno es ik y otro es mmseg, y el siguiente solo introduce el uso de ik.
El plugin IK Analysis integra el analizador Lucene IK en elasticsearch y soporta diccionarios personalizados.
Dirección del proyecto elasticsearch-analysis-ik:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
Primero, detiene Elasticsearch, JPS encuentra el ID de proceso y lo elimina con el ID de proceso kill -9. (De todas formas no lo probé, es más seguro parar e instalar)
Instalar usando elasticsearch-plugin (compatible desde la versión v5.5.1):
Nota: Sustituye la 6.3.0 por tu propia versión de elasticsearch
Lo instalé en mi servidorElasticsearch es la versión 6.5.2Es decir, el comando es el siguiente:
El error de instalación es el siguiente:
Excepción en el hilo "main" java.nio.file.FileSystemException: /usr/local/elasticsearch-6.5.2/config/analysis-ik: No está permitida la operación
El plugin de instalación Elasticsearch debe ejecutarse como rootAsí que usamos su root para cambiar a estado de administrador, volver a realizar la instalación y es exitosa, como se muestra en la figura de abajo:
Probamos enviando una solicitud de publicación de nuevo a la interfaz, y el contenido de la publicación es el siguiente:
Descubrí que podía entender nuestra semántica normalmente, y dividí "arquitecto", "hermoso" y "arquitectura" en una sola palabra.
¿Cuál es la diferencia entre ik_max_word y ik_smart?
ik_max_word: El texto se dividirá en la más fina granularidad, como que el "Himno Nacional de la República Popular China" se dividirá en "República Popular China, Pueblo Chino, China, China, República Popular, Pueblo, Pueblo, Pueblo, República, República, Él, Himno Nacional", y agotará todas las combinaciones posibles;
ik_smart: Hace el nivel más grosero de escindidura, como la división del "Himno Nacional de la República Popular China" en "Himno Nacional de la República Popular China".
|