Elastic Search

PARADIGMA: Tecnología, talento y metodología para reinventar el futuro digital de las grandes compañías.

paradig.ma

Elasticsearch es un motor de búsqueda:

• Desarrollado en JAVA.
• Open Source.
• Distribuido.
• Escalable.
• Basado en LUCENE.

 

LUCENE es una librería de búsqueda de texto:

• Desarrollado en JAVA.
• Open Source.
• Escalable.
• Con alto rendimiento.
• Basada en índices invertidos.

Los índices invertidos son lo más representativo de los motores de búsqueda, en contraposición de los índices directos que tienen la mayoría de las Bases de Datos.

EJEMPLO DE ÍNDICE DIRECTO

Tenemos una serie de documentos que se guardan con un ID c/u. Si se realiza una búsqueda por ID, va al nivel que corresponde y te lo devuelve.
Pero si se quiere hacer una búsqueda de texto (Por ejemplo, la palabra ‘QUE’), la búsqueda recorrería cada uno de los documentos para encontrar esa cadena de texto.

 

EJEMPLO DE ÍNDICE INVERTIDO


En este ejemplo, cada uno de los documentos será analizado,  «tokenizado», y referenciado a cada una de las palabras. (QUE: Se encuentra en el Documento 1, ES: Se encuentra en el Documento 1, 2 y 3, ESTO: Se encuentra en el Documento 1 y 2, etc)


De tal forma, que si queremos únicamente saber en qué documentos se encuentra la palabra ‘QUE’. la búsqueda y respuesta son directas. 
También, podemos saber en que posición se encuentra la cadena de texto dentro de ese documento. (QUE: Se encuentra en el Documento 1 y en la posición 1, ES: Se encuentra en el documento 1 y en la posición 2, en el documento 2 con posición 2, en el documento 3 con posición 3, ESTO: Se encuentra en el documento 1 en la posición 3 y en el documento 2 en la posición 1, etc).

¿Qué se consigue con esto? Se pueden realizar búsquedas que de otra manera serían más complicadas o que llevarían más tiempo.

VENTAJAS:

• Velocidad de Búsqueda.
• Facilidad para aplicar algoritmos de relevancia.
• Facilidad para aplicar analizadores de texto.

DESVENTAJAS:

• Velocidad de indexación.
• Algunas búsquedas más costosas (‘Not Lógico’ no es algo que Elastic soporte bien)

COMPARATIVO

LUCENE   ELASTIC

• Generación de índices invertidos.
• Búsqueda sobre índices invertidos
• Características adicionales:
   – Analizadores de Texto
   – Ordenaciones
   – Resaltado de Coincidencias
   – Corrector Ortográfico
  • Interfaz REST
•  Distribución
• Alta disponibilidad
• Funcionalidades Adicionales:
   – Herramientas de análisis
   – Múltiples índices
   – Gestión de cluster




GLOSARIO (Conceptos Básicos)

 

Documento: Unidad básica de información que puede ser indexada y recuperada. (En Elastic los documentos son JSON, es una información dónde vamos a tener CLAVE y VALOR).

Índice: Conjunto de documentos con características similares.

Nodo: Instancia de elasticsearch. Almacena los documentos y participa en las tareas de indexación y búsqueda.

Cluster: Conjunto de uno o más nodos. Pueden definirse diferentes índices dentro de un cluster.

Shard: Fragmento de un índice que contiene parte de los documentos.

Réplica: Copia de un shard primario.

Settings: Define la configuración de un índice y sus características específicas (ej. número de réplicas y shards). Se define a nivel de cluster y algunos parámetros se pueden modificar una vez creado el índice.

Mappings: Es la definición del modelo de datos de un índice (Puede definirse de manera explícita o dejar que lo genere elasticsearch). Por cada campo se puede definir su tipo, propiedades y analizadores.

Analizadores de Texto: Procesadores de texto que realizan transformaciones del contenido de los diferentes campos para permitir funcionalidades adicionales de búsqueda.

• Es recomendable tener los mismos filtros tanto en indexación, como en la búsqueda.
• Es importante el orden en el que se aplican los filtros.

Gestión del Cluster

• Descubrimiento de nodos vía unicast.
• Los nodos hablan entre ellos para formar el mapa completo del cluster y decidir un nodo maestro.
• Al menos la mitad más uno de los nodos deben estar activos para evitar problemas de «Split Brain».
• Por defecto se puede seguir buscando en un cluster sin quorum, pero no se puede escribir.

 

Etiquetado , ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *