Elasticsearch permite indexar y buscar grandes cantidades de datos de forma distribuida. Los datos se almacenan en nodos que forman parte de clusters, y los documentos se indexan en colecciones llamadas índices. Los índices pueden dividirse en shards para permitir la escalabilidad horizontal, y los shards pueden replicarse para proporcionar tolerancia a fallos. Los mappings definen los campos y tipos de datos de los documentos indexados.
2. Introducción
• Elasticsearch permite indexar y analizar en
tiempo real grandes cantidades de datos de
manera distribuida.
• Elasticsearch permite almacenar documentos
(estructurados o no) e indexar todos los campos
de estos documentos en casi tiempo real.
• Elasticsearch a diferencia de otros sistemas
parecidos, no necesita declarar un esquema de la
información que añadimos, pero para sacar
mayor partido a la información tendremos que
añadir los llamados mappings
3. Conceptos en los que se basa
• Cluster
• Un cluster es un conjunto de uno o más nodos
que mantienen toda la información de manera
distribuida e indexada. Cada cluster está
identificado por un nombre, por defecto se
llaman "elasticsearch".
4. Conceptos en los que se basa
• Node
• Un nodo es un server que forma parte de un cluster,
almacena tu información y ayuda con las tareas de
indexación y búsqueda del cluster. Los nodos están
identificados por un nombre también, pero en este caso
cada nodo está nombrado tras un personaje de Marvel.
• Por defecto están configurados para ser parte de un cluster
con el nombre de "elasticsearch".
• Puede haber tantos nodos como quieras por cada Cluster,
en caso de que no haya ningún Cluster configurado en el
momento de creación este lo creará y se unirá a él.
5. Conceptos en los que se basa
• Index
• Un Index es una colección de documentos que
tienen características similares. Los índices
están identificados por un nombre, el cual
usaremos a la hora de indexar, buscar,
actualizar y borrar.
6. Conceptos en los que se basa
• Sharding y Replicas
• Cuando la información que estamos indexando
sobrepasa el límite de una sola máquina, elasticsearch
nos ofrece distintas maneras de saltarnos esa
limitación.
• El sharding nos permite dividir estos índices en
distintas "piezas" ofreciéndonos la posibilidad de
escalar horizontalmente (añadiendo más máquinas),
además de paralelizar y distribuir las distintas
operaciones que hagamos sobre esos índices.
• La replicación nos ofrece un mecanismo para que en
caso de fallo el usuario no se vea afectado.