¿Cómo funciona la búsqueda elástica?

Dec 25 2022
ES: Requisitos previos de Elastic Search En nuestro artículo anterior, cubrimos los conceptos básicos de Elastic Search y sus diversos usos. Ahora, profundizaremos en cómo funciona realmente Elastic Search.

ES: Búsqueda elástica

requisitos previos

¿Qué es la búsqueda elástica?

En nuestro artículo anterior , cubrimos los conceptos básicos de Elastic Search y sus diversos usos. Ahora, profundizaremos en cómo funciona realmente Elastic Search. Comprender el funcionamiento interno de Elastic Search puede ayudarnos a utilizar mejor sus capacidades y solucionar cualquier problema que pueda surgir. Así que echemos un vistazo más de cerca a cómo funciona Elastic Search.

Para comprender cómo funciona ES, debemos conocer algunos conceptos básicos de Elastic Search.

  1. Conceptos lógicos: cómo ES organiza los datos
  2. Componentes de back-end

Conceptos lógicos:

Documentos

Los documentos son la unidad básica de información. Almacenamos nuestros datos como documentos que pueden ser objetos JSON . Entonces, ¿cómo se organizan estos datos en el clúster? La respuesta es índices. En el mundo de las bases de datos relacionales, los documentos se pueden comparar con una fila en una tabla que representa una entidad determinada.

Los documentos pueden ser texto o datos estructurados codificados en JSON (los datos pueden ser números, cadenas y fechas)

Ejemplo: un documento puede representar un artículo de enciclopedia o entradas de registro de un servidor web

Índice

Los índices ES son particiones lógicas de documentos y se pueden comparar con una base de datos en el mundo de las bases de datos relacionales. Un índice es la entidad de más alto nivel contra la que puede consultar en ES. Por Ejemplo: Podemos tener índice para casos, proveedores, vehículos, pólizas.

Escribe

Cada índice tiene uno o más tipos de asignación que se utilizan para dividir documentos en un grupo lógico. Se puede comparar con una tabla en el mundo de las bases de datos relacionales.

Índice invertido

Está diseñado para permitir búsquedas muy rápidas de texto completo. Un índice invertido enumera cada palabra única que aparece en cualquier documento e identifica todos los documentos en los que aparece cada palabra. Es una estructura de datos similar a un mapa hash que lo dirige de una palabra a un documento.

qué sucede si tenemos un error tipográfico en nuestra consulta de búsqueda, es decir. ¿Qué sucede si buscamos en Jefferieslugar de Jeffery?

Para casos como el anterior, TextAnalyzer juega un papel importante. En el caso de la búsqueda de texto completo, los analizadores son responsables de tokenizar, normalizar, derivar, eliminar palabras vacías de los documentos de entrada, etc. para que los resultados de la búsqueda arrojen resultados correctos.

POST _analyze
{
  "tokenizer": "letter",
  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

[ The, QUICK, Brown, Foxes, jumped, over, the, lazy, dog, s, bone ]

      
                

Grupo

En ES, los datos se almacenan en nodos, puede haber n número de nodos en una máquina. Y cada nodo está relacionado con el clúster. Entonces el Cluster es un conjunto de nodos

Nodo

Un nodo es un único servidor que forma parte de un clúster. Un nodo almacena datos y participa en las capacidades de indexación y búsqueda del clúster. Un nodo ES se puede configurar de diferentes maneras:

  • Nodo maestro: controla el clúster de ES y es responsable de todas las operaciones del clúster, como crear/eliminar un índice y agregar/eliminar nodos.
  • Nodo de datos: almacena datos y ejecuta operaciones relacionadas con datos, como búsqueda y agregación.
  • Nodo de cliente: reenvía las solicitudes de clúster al nodo principal y las solicitudes relacionadas con los datos a los nodos de datos.

ES proporciona la capacidad de subdividir el índice en múltiples partes llamadas fragmentos. Shard es como un índice. Para escalabilidad. Con la fragmentación, puede almacenar miles de millones de documentos dentro de un índice.

Réplicas

ES le permite hacer una o más copias de los fragmentos de su índice que se denominan "fragmentos de réplica" o simplemente "réplicas". Básicamente, un fragmento de réplica es una copia de un fragmento principal. Cada documento en un índice pertenece a un fragmento principal. Las réplicas proporcionan copias redundantes de sus datos para protegerse contra fallas de hardware y aumentar la capacidad para atender solicitudes de lectura, como buscar o recuperar un documento.

Una réplica es una copia del fragmento principal y tiene dos propósitos:

  1. Aumentar la conmutación por error : se puede promover a principal compartido si falla el principal
  2. Aumento del rendimiento : las solicitudes de obtención y búsqueda pueden gestionarse mediante fragmentos primarios o de réplica.

Los datos sin procesar fluyen hacia ES desde una variedad de fuentes, incluidos registros, métricas del sistema y aplicaciones web. La ingestión de datos es el proceso mediante el cual estos datos sin procesar se analizan, normalizan y enriquecen antes de indexarlos en ES. Un índice ES es una colección de documentos que están relacionados entre sí. ES almacena datos como documentos JSON. Cada documento correlaciona un conjunto de claves (nombres de campos o propiedades) con sus valores correspondientes (cadenas, números, booleanos, fechas, matrices de valores, ubicaciones geográficas u otros tipos de datos).

ES utiliza una estructura de datos denominada índice invertido, que está diseñada para permitir búsquedas de texto completo muy rápidas. Un índice invertido enumera cada palabra única que aparece en cualquier documento e identifica todos los documentos en los que aparece cada palabra.

Durante el proceso de indexación, ES almacena documentos y crea un índice invertido para que los datos del documento se puedan buscar casi en tiempo real. La indexación se inicia con la API de índice, a través de la cual puede agregar o actualizar un documento JSON en un índice específico.

Referencias

Elasticsearch de abajo hacia arriba, parte 1

Referencia del tokenizador | Guía de búsqueda elástica [8.5] ​​| Elástico

Normalizadores | Guía de búsqueda elástica [8.5] ​​| Elástico

Derivación | Guía de búsqueda elástica [8.5] ​​| Elástico

Espero que hayas disfrutado leyendo sobre Elastic Search y cómo funciona. Si este artículo le resultó útil o tiene más preguntas, no dude en comunicarse conmigo a través de los comentarios.

Para obtener más actualizaciones e información sobre las últimas tendencias tecnológicas, asegúrese de seguirme en Twitter o LinkedIn . Gracias por leer, y espero conectarme con usted en las redes sociales.

Gorjeo:https://twitter.com/geekfarmer_

Linkedin:https://www.linkedin.com/in/geekfarmer