Tutorial de elasticsearch para principiantes

Tutorial de elasticsearch para principiantes
En esta lección, veremos cómo podemos usar elasticsearch y cuál es su uso. Veremos a fondo varias terminologías involucradas y comenzaremos a trabajar con ella también.

Base de datos de elasticsearch

Elasticsearch es una de las bases de datos NoSQL más populares que se utiliza para almacenar y buscar datos basados ​​en texto. Se basa en la tecnología de indexación de Lucene y permite la recuperación de la búsqueda en milisegundos en función de los datos que están indexados.

Basado en el sitio web de Elasticsearch, aquí está la definición:

Elasticsearch es un motor de búsqueda y análisis de código abierto y de código abierto capaz de resolver un número creciente de casos de uso.

Esas fueron algunas palabras de alto nivel sobre elasticsearch. Entendamos los conceptos en detalle aquí.

  • Repartido: Elasticsearch divide los datos que contiene en múltiples nodos y usa maestro-esclavo algoritmo internamente
  • Sosegado: Elasticsearch admite consultas de bases de datos a través de API REST. Esto significa que podemos usar llamadas HTTP simples y usar métodos HTTP como Get, Post, Put, Eliminar, etc. Para acceder a los datos.
  • Motor de búsqueda y análisis: ES admite consultas altamente analíticas para ejecutarse en el sistema que puede consistir en consultas agresivas y múltiples tipos, como consultas estructuradas, no estructuradas y geográficas.
  • Horizontalmente calificado: Este tipo de chasquido se refiere a agregar más máquinas a un clúster existente. Esto significa que ES es capaz de aceptar más nodos en su clúster y no proporcionar tiempo de inactividad para las actualizaciones requeridas al sistema. Mire la imagen a continuación para comprender los conceptos de escala:
  • Scoiling vertical y horizontal

Comenzando con la base de datos Elasticsearch

Para comenzar a usar ElasticSearch, debe instalarse en la máquina. Para hacer esto, lea instalar Elasticsearch en Ubuntu.

Asegúrese de tener una instalación activa de ElasticSearch si desea probar ejemplos que presentamos más adelante en la lección.

Elasticsearch: conceptos y componentes

En esta sección, veremos qué componentes y conceptos se encuentran en el corazón de Elasticsearch. Comprender sobre estos conceptos es importante comprender cómo funciona ES:

  • Grupo: Un clúster es una colección de máquinas de servidor (nodos) que contiene los datos. Los datos se dividen entre múltiples nodos para que se puedan replicar y el punto de falla único (SPOF) no ocurre con el servidor ES. El nombre predeterminado del clúster es elasticsearch. Cada nodo en un clúster se conecta al clúster con una URL y el nombre del clúster, por lo que es importante mantener este nombre distinto y claro.
  • Nodo: Una máquina de nodo es parte de un servidor y se denomina una sola máquina. Almacena los datos y proporciona capacidades de indexación y búsqueda, junto con otros nodos al clúster.

    Debido al concepto de escala horizontal, prácticamente podemos agregar un número infinito de nodos en un clúster ES para darle mucha más fuerza e capacidades de indexación.

  • Índice: Un índice es una colección de documentos con características algo similares. Un índice es bastante similar a una base de datos en un entorno basado en SQL.
  • Tipo: Se utiliza un tipo para separar los datos entre el mismo índice. Por ejemplo, la base de datos/índice de los clientes puede tener múltiples tipos, como usuario, pago_type, etc.

    Tenga en cuenta que los tipos están desaprobados de ES V6.0.0 en adelante. Lea aquí por qué se hizo esto.

  • Documento: Un documento es el nivel más bajo de unidad que representa datos. Imagínelo como un objeto json que contiene sus datos. Es posible indexar tantos documentos dentro de un índice.

Tipos de búsqueda en elasticsearch

Elasticsearch es conocido por sus capacidades de búsqueda casi en tiempo real y las flexibilidades que proporciona con el tipo de datos que se están indexando y buscan. Comencemos a estudiar cómo usar la búsqueda con varios tipos de datos.

  • Búsqueda estructurada: este tipo de búsqueda se ejecuta en datos que tienen un formato predefinido como fechas, tiempos y números. Con el formato predefinido viene la flexibilidad de ejecutar operaciones comunes, como comparar valores en un rango de fechas. Curiosamente, Los datos textuales también se pueden estructurar. Esto puede suceder cuando un campo tiene un número fijo de valores. Por ejemplo, el nombre de las bases de datos puede ser, MySQL, MongoDB, Elasticsearch, Neo4J, etc. Con la búsqueda estructurada, la respuesta a las consultas que ejecutamos es un sí o no.
  • Búsqueda de texto completo: este tipo de búsqueda depende de dos factores importantes, Relevancia y Análisis. Con relevancia, determinamos qué tan bien coinciden algunos datos con la consulta definiendo una puntuación para los documentos resultantes. Esta puntuación es proporcionada por ES. Análisis se refiere a dividir el texto en tokens normalizados para crear un índice invertido.
  • Búsqueda multifield: con el número de consultas analíticas que aumentan en los datos almacenados en ES, generalmente no enfrentamos consultas simples de coincidencia. Los requisitos han crecido para ejecutar consultas que se extienden a través de múltiples campos y tienen una lista ordenada de datos que nos devuelven la propia base de datos. De esta manera, los datos pueden estar presentes al usuario final de una manera mucho más eficiente.
  • COCARACIÓN DE PROIMIDAD: las consultas de hoy es mucho más que solo identificarse si algunos datos textuales contienen otra cadena o no. Se trata de establecer la relación entre los datos para que se pueda calificar y coincidir con el contexto en el que se coinciden los datos. Por ejemplo:
    • Bola golpeó a John
    • John golpeó la pelota
    • John compró una pelota nueva que fue golpeada Jaen Garden

    Una consulta de coincidencia encontrará los tres documentos cuando se busque Bola de golpe. Una búsqueda de proximidad puede decirnos qué tan lejos aparecen estas dos palabras en la misma línea o párrafo debido al cual coincidieron.

  • Matricidad parcial: a menudo es necesario ejecutar consultas parciales de partidos de partida. La coincidencia parcial nos permite ejecutar consultas que coinciden parcialmente. Para visualizar esto, veamos consultas similares basadas en SQL:

    Consultas SQL: coincidencia parcial

    Donde el nombre como "%John%"
    Y nombre como "%rojo%"
    Y nombre como "%jardín%"

    En algunas ocasiones, solo necesitamos ejecutar consultas parciales de coincidencias incluso cuando pueden considerarse como técnicas de fuerza bruta.

Integración con kibana

Cuando se trata de un motor de análisis, generalmente necesitamos ejecutar consultas de análisis en un dominio de inteligencia de negocios (BI). Cuando se trata de analistas de negocios o analistas de datos, no sería justo suponer que las personas conocen un lenguaje de programación cuando desean visualizar los datos presentes en ES Cluster. Este problema es resuelto por Kibana.
Kibana ofrece tantos beneficios a BI que las personas pueden visualizar datos con un tablero excelente y personalizable y ver datos de manera innovadora. Veamos algunos de sus beneficios aquí.

Gráficos interactivos

En el núcleo de Kibana hay gráficos interactivos como estos:

Kibana viene con el apoyo de varios tipos de gráficos como gráficos circulares, estallidos solares, histogramas y mucho más que utiliza las capacidades de agregación completa de ES.

Soporte de mapeo

Kibana también es compatible. ¿No es esto genial??!

Agregaciones y filtros preconstruidos

Con agregaciones y filtros preconstruidos, es posible fragmentar, literalmente, soltar y ejecutar consultas altamente optimizadas dentro del tablero de Kibana. Con solo unos pocos clics, es posible ejecutar consultas agregadas y presentar resultados en forma de gráficos interactivos.

Distribución fácil de paneles

Con Kibana, también es muy fácil compartir los paneles de un público mucho más amplio sin hacer ningún cambio en el tablero con la ayuda de solo el modo de tablero. Podemos insertar fácilmente paneles en nuestro wiki interno o páginas web.

Imágenes de características tomadas Formulario Página de producto Kibana.

Usando ElasticSearch

Para ver los detalles de la instancia y la información del clúster, ejecute el siguiente comando:

Ahora, podemos intentar insertar algunos datos en ES usando el siguiente comando:

Insertar datos

curl \
-X post 'http: // localhost: 9200/linuxhint/hello/1' \ \
-H 'Tipo de contenido: Aplicación /JSON' \
-D '"Nombre": "Linuxhint"' \

Esto es lo que recuperamos con este comando:

Intentemos obtener los datos ahora:

Obtener datos

curl -x get 'http: // localhost: 9200/linuxhint/hello/1'

Cuando ejecutamos este comando, obtenemos la siguiente salida:

Conclusión

En esta lección, observamos cómo podemos comenzar a usar Elasticsearch, que es un excelente motor de análisis y también proporciona un excelente soporte para la búsqueda de texto libre casi en tiempo real.