¿Qué es Elasticsearch?

En esta unidad vamos a ver qué es Elasticsearch y los conceptos fundamentales para entender su arquitectura y por qué es tan eficiente, además conseguiremos realizar la implementación de un clusterConjunto de elementos como puede ser nodos en una arquitectura. tanto en local como en la nube.

Elasticsearch es un motor de búsqueda analítico open-source full-text fácil de usar y altamente escalable.

Es posible realizar búsquedas complejas de datos sobre toda la información indexada que tengamos incluyendo:

1

Auto-complección

2

Corrección de errores

3

Resaltar emparejamientos

4

Manejar sinónimos

5

Ajuste de relevancia

Por ejemplo, un usuario podría entrar en nuestro e-commerce y realizar una búsqueda indicando en su propio lenguaje lo que necesita:

El motor Elasticsearch sería capaz de realizar la búsqueda en base a la solicitud del usuario devolviendo resultados relevantes y de manera eficiente.

Elasticsearch como plataforma analítica

Elasticsearch también permite consultas sobre datos estructurados como números o agregaciones para ser usado como plataforma analítica.

Elasticsearch es una herramienta potente a la hora de manejar grandes volúmenes de datos (uso de índices, shards,...).

Por ejemplo, podríamos realizar la predicción de llamadas en un Call Center para dimensionar el equipo:

¿Cómo se guardan los datos en Elasticsearch y hacemos consultas?

En Elasticsearch los datos son guardados como documentos (unidad de información, similar a una fila en una base de datos SQL).

Un documento es un objeto JSONUn archivo JSON es un documento digital creado en este lenguaje que almacena información organizada en formato semiestructurado, con el fin de hacer más simple su búsqueda y acceso. que contiene campos (similar a las columnas en una base de datos).

Para poder hacer consultas al motor de búsqueda de Elasticsearch, se sigue el siguiente esquema:

1. Petición

 El cliente (comúnmente un portal web, una consulta desde cURL...) realiza la petición en formato JSON semiestructurado al cluster de Elasticsearch mediante su APIEl término API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones. Se trata de un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar el software de las aplicaciones, permitiendo la comunicación entre dos aplicaciones de software a través de un conjunto de reglas. (profundizaremos en futuras unidades en este concepto).

2. Respuesta

El cluster de Elasticsearch (motor de búsqueda) realiza la búsqueda de resultados relevantes y los devuelve como objeto JSON al cliente.

En el siguiente vídeo se detallan los puntos indicados anteriormente: