Elasticsearch es un servidor de búsqueda basado en Lucene. Provee un motor de búsqueda de texto completo, distribuido y con capacidad de multi-tenencia con una interfaz web RESTful y con documentos JSON. Elasticsearch está desarrollado en Java y está publicado como código abierto bajo las condiciones de la licencia Apache.
2. ELASTICSEARCH
▣Es un servidor de búsquedas basado en Apache Lucene.
▣Escrito en Java.
▣Multi-plataforma.
▣Enfocado en la escalabilidad.
▣Diseñado para obtener datos desde distintas fuentes,
analizarlos y realizar búsquedas a través de ellos.
3. ELASTICSEARCH
▣ Comunicación con el server a través de HTTP REST API.
▣ Documentos JSON schema-less (NoSQL).
▣ Búsquedas near real-time.
5. ELASTICSEARCH: Características
▣ Near real-time
□ ElasticSearch es un motor de búsquedas near real-time.
□ Funciona con una pequeña latencia al momento de indexar el documento previo a estar
disponible para su búsqueda.
□ La latencia es usualmente de un segundo.
▣ Cluster
□ Un clúster es una colección de nodos (servers).
□ Consiste en uno o más nodos dependiendo de la necesidad de escala.
□ Un clúster provee capacidad de indexación y búsqueda a través
□ de todos sus nodos.
6. ELASTICSEARCH: Características
▣ Nodo
□ Un server que es parte de un clúster.
□ Almacena información indexable.
□ Participa en las capacidades de indexación y búsquedas.
▣ Index
□ Una colección de documentos (productos, cuentas, películas).
Cada uno de los ejemplos anteriores son denominados tipos.
□ Se corresponden a una base de datos dentro de un sistema de
bases de datos relacional.
□ Identificado por un nombre en minúscula.
7. ELASTICSEARCH: Características
▣ Tipo
□ Representa una clase/categoría de documentos similares, ejemplo usuario.
□ Consistencia entre el nombre y el mapeo.
□ Similar a una tabla dentro de un modelo relacional.
□ Un index puede contener muchos tipos definidos, cada uno con su propio mapeo.
□ Almacenados dentro de la metada _type debido a que Lucene no tiene concepto de tipos.
▣ Mapping
□ Similar al esquema de una base de datos.
□ Describe los campos de un documento.
Incluye el tipo de datos.
Indica como debe ser indexado.
□ Mapeo dinamico indica que es opcional definir cada uno
de los campos.
8. ELASTICSEARCH: Características
▣ Shard
□ Los índices se subdividen en fragmentos horizontales.
□ Cada fragmento contiene todas las propiedades del documento.
□ La separación horizontal hace que los shards sean nodos independientes.
▣ Replicas
□ Una replica es una copia de un shard.
□ Provee alta disponibilidad en caso de que un shard o un nodo falle.
Una replica nunca reside en el mismo nodo que el shard original.
□ Permite escalar el volumen de búsqueda, debido a que las consultas de búsqueda pueden
ser ejecutadas en todas las replicas en paralelo.
□ Por defecto, ElasticSearch agrega 5 shards primarios y 1
replica para cada index.
9. ELASTICSEARCH: CRUD
▣ Crear contenido
□ Se refiere a la acción de indexar
□ Crear una película:
curl –XPUT ‘localhost:9200/movies/movie/1’ –d