Colección de citas famosas - Slogan de motivación - Descripción detallada del analizador Elasticsearch

Descripción detallada del analizador Elasticsearch

El análisis de texto en Elasticsearch es el proceso de convertir texto completo en una serie de palabras ($término/token), también conocido como segmentación de palabras. El análisis de texto lo implementan analizadores. Elasticsearch tiene un analizador incorporado y los usuarios también pueden personalizar el analizador según sus propias necesidades.

Para mejorar la precisión de la búsqueda, además de convertir entradas al escribir datos, también se necesita el mismo analizador para analizar la declaración de la consulta al compararla.

La composición del analizador

El analizador consta de tres partes: filtro de caracteres, tokenizador y filtro de token.

Filtros de caracteres

Los filtros de caracteres reciben un flujo de caracteres de texto sin formato y pueden agregar, eliminar campos o convertir caracteres en texto sin formato. El analizador puede realizar filtros de caracteres 0-n secuencialmente.

Tokenizer

El separador de palabras del tokenizador recibe la salida del flujo de caracteres mediante el filtro de caracteres, descompone el flujo de caracteres en palabras del flujo de caracteres y genera el flujo de palabras. Por ejemplo, el separador de palabras con espacio dividirá el texto en espacios y convertirá "¡Zorro marrón rápido!" ]. La herramienta de segmentación de palabras también es responsable de registrar el orden de cada palabra y sus desplazamientos inicial y final en el texto original.

El analizador tiene solo 1 guión.

Filtro de token

Filtro de token El filtro de palabras recibe la salida del flujo de palabras de Tokenizer y puede agregar, eliminar o convertir palabras en el flujo de palabras. Por ejemplo, el filtro de token de minúsculas convertirá todas las palabras a minúsculas, el filtro de token de parada eliminará palabras comunes como y, y el filtro de token de sinónimos agregará sinónimos al flujo de palabras.

El filtro de token no permite cambiar la posición de la palabra en el documento original y sus desplazamientos inicial y final.

Un analizador puede tener filtros de 0 a n palabras que se ejecutan secuencialmente.

Sistema de segmentación de palabras integrado de Elasticsearch

Analizador estándar: separador de palabras predeterminado, segmentación de palabras, procesamiento de minúsculas.

Analizador simple: división basada en letras que no son letras (los símbolos se filtran), procesamiento de minúsculas.

Detener analizador: procesamiento de minúsculas, detener filtrado de palabras (the, a, is).

Analizador de espacios en blanco: separados por espacios, no por minúsculas.

Analizador de palabras clave: sin segmentación de palabras, toma directamente la entrada como salida.

Analizador de patrones: expresión regular, predeterminado \W+

Idioma: proporciona separación de palabras para más de 30 idiomas comunes.

Complementos de uso común para dividir caracteres

Analizador IK: compatible con la segmentación de palabras chinas, admite actualización en caliente remota del diccionario y tiene dos analizadores: ik_smart e ik_max_word.

Analizador de Pinyin: puede realizar análisis de Pinyin en chino y utilizar Pinyin para buscar el chino correspondiente durante la búsqueda.

ICU Analyzer: proporciona compatibilidad con Unicode y mejor compatibilidad con idiomas asiáticos.

Analizador chino basado en procesamiento del lenguaje natural