En este módulo, aprenderemos cómo actualizar y eliminar datos en Elasticsearch. Estos son procesos fundamentales para mantener la integridad y la relevancia de los datos en tu índice. Vamos a cubrir los siguientes temas:
- Actualización de Documentos
- Eliminación de Documentos
- Actualización por Consulta
- Eliminación por Consulta
- Actualización de Documentos
Conceptos Clave
- Documentos: La unidad básica de datos en Elasticsearch.
- Índices: Colecciones de documentos.
- ID del Documento: Identificador único para cada documento en un índice.
Ejemplo Práctico
Para actualizar un documento, utilizamos el método POST
con la API de Elasticsearch. Supongamos que tenemos un índice llamado library
y un documento con el ID 1
.
Paso 1: Crear un Documento
POST /library/_doc/1 { "title": "Elasticsearch Basics", "author": "John Doe", "published_year": 2021 }
Paso 2: Actualizar el Documento
Para actualizar el documento, utilizamos la API de actualización:
Explicación
- Método
POST
: Utilizado para enviar datos al servidor. /library/_update/1
: Ruta que especifica el índice (library
), la acción (_update
) y el ID del documento (1
)."doc"
: Contiene los campos que queremos actualizar.
Ejercicio Práctico
- Crea un índice llamado
books
y añade un documento con los siguientes datos:{ "title": "Learning Elasticsearch", "author": "Alice Smith", "published_year": 2020 }
- Actualiza el campo
author
a "Bob Smith".
Solución
POST /books/_doc/1 { "title": "Learning Elasticsearch", "author": "Alice Smith", "published_year": 2020 } POST /books/_update/1 { "doc": { "author": "Bob Smith" } }
- Eliminación de Documentos
Conceptos Clave
- Eliminación Suave: Marcado de documentos como eliminados sin borrarlos físicamente.
- Eliminación Física: Borrado completo de documentos del índice.
Ejemplo Práctico
Para eliminar un documento, utilizamos el método DELETE
con la API de Elasticsearch.
Paso 1: Crear un Documento
POST /library/_doc/2 { "title": "Advanced Elasticsearch", "author": "Jane Doe", "published_year": 2022 }
Paso 2: Eliminar el Documento
Para eliminar el documento, utilizamos la API de eliminación:
Explicación
- Método
DELETE
: Utilizado para eliminar datos del servidor. /library/_doc/2
: Ruta que especifica el índice (library
) y el ID del documento (2
).
Ejercicio Práctico
- Crea un índice llamado
articles
y añade un documento con los siguientes datos:{ "title": "Introduction to Elasticsearch", "author": "Charlie Brown", "published_year": 2019 }
- Elimina el documento creado.
Solución
POST /articles/_doc/1 { "title": "Introduction to Elasticsearch", "author": "Charlie Brown", "published_year": 2019 } DELETE /articles/_doc/1
- Actualización por Consulta
Conceptos Clave
- Script: Código que se ejecuta para actualizar documentos que coinciden con una consulta.
Ejemplo Práctico
Para actualizar múltiples documentos que coinciden con una consulta, utilizamos la API de actualización por consulta.
Paso 1: Crear Documentos
POST /library/_doc/3 { "title": "Elasticsearch for Beginners", "author": "John Smith", "published_year": 2020 } POST /library/_doc/4 { "title": "Mastering Elasticsearch", "author": "John Smith", "published_year": 2021 }
Paso 2: Actualizar Documentos por Consulta
Para actualizar todos los documentos donde el author
es "John Smith":
POST /library/_update_by_query { "script": { "source": "ctx._source.author = 'John Doe'" }, "query": { "term": { "author": "John Smith" } } }
Explicación
_update_by_query
: Ruta para actualizar documentos por consulta."script"
: Contiene el código que se ejecutará para cada documento que coincida con la consulta."query"
: Define los criterios de selección de documentos.
Ejercicio Práctico
- Crea un índice llamado
magazines
y añade dos documentos con los siguientes datos:{ "title": "Elasticsearch Monthly", "author": "Emily Clark", "published_year": 2021 } { "title": "Elasticsearch Weekly", "author": "Emily Clark", "published_year": 2022 }
- Actualiza el campo
author
a "Emma Clark" para todos los documentos donde elauthor
es "Emily Clark".
Solución
POST /magazines/_doc/1 { "title": "Elasticsearch Monthly", "author": "Emily Clark", "published_year": 2021 } POST /magazines/_doc/2 { "title": "Elasticsearch Weekly", "author": "Emily Clark", "published_year": 2022 } POST /magazines/_update_by_query { "script": { "source": "ctx._source.author = 'Emma Clark'" }, "query": { "term": { "author": "Emily Clark" } } }
- Eliminación por Consulta
Conceptos Clave
- Eliminación Masiva: Borrado de múltiples documentos que coinciden con una consulta.
Ejemplo Práctico
Para eliminar múltiples documentos que coinciden con una consulta, utilizamos la API de eliminación por consulta.
Paso 1: Crear Documentos
POST /library/_doc/5 { "title": "Elasticsearch Essentials", "author": "Jane Smith", "published_year": 2019 } POST /library/_doc/6 { "title": "Elasticsearch Deep Dive", "author": "Jane Smith", "published_year": 2020 }
Paso 2: Eliminar Documentos por Consulta
Para eliminar todos los documentos donde el author
es "Jane Smith":
Explicación
_delete_by_query
: Ruta para eliminar documentos por consulta."query"
: Define los criterios de selección de documentos.
Ejercicio Práctico
- Crea un índice llamado
journals
y añade dos documentos con los siguientes datos:{ "title": "Elasticsearch Journal", "author": "David Johnson", "published_year": 2018 } { "title": "Elasticsearch Insights", "author": "David Johnson", "published_year": 2019 }
- Elimina todos los documentos donde el
author
es "David Johnson".
Solución
POST /journals/_doc/1 { "title": "Elasticsearch Journal", "author": "David Johnson", "published_year": 2018 } POST /journals/_doc/2 { "title": "Elasticsearch Insights", "author": "David Johnson", "published_year": 2019 } POST /journals/_delete_by_query { "query": { "term": { "author": "David Johnson" } } }
Conclusión
En esta sección, hemos aprendido cómo actualizar y eliminar datos en Elasticsearch. Estos son procesos esenciales para mantener la integridad y la relevancia de los datos en tus índices. Hemos cubierto:
- Actualización de documentos individuales.
- Eliminación de documentos individuales.
- Actualización de documentos por consulta.
- Eliminación de documentos por consulta.
Con estos conocimientos, estás preparado para gestionar eficazmente los datos en tus índices de Elasticsearch. En el próximo módulo, exploraremos el Elasticsearch Query DSL para realizar búsquedas avanzadas.
Curso de Elasticsearch
Módulo 1: Introducción a Elasticsearch
- ¿Qué es Elasticsearch?
- Instalando Elasticsearch
- Conceptos Básicos: Nodos, Clústeres e Índices
- Arquitectura de Elasticsearch
Módulo 2: Empezando con Elasticsearch
Módulo 3: Técnicas Avanzadas de Búsqueda
Módulo 4: Modelado de Datos y Gestión de Índices
- Mapeo y Analizadores
- Plantillas de Índices
- Alias y Reindexación
- Gestión del Ciclo de Vida del Índice
Módulo 5: Rendimiento y Escalabilidad
- Optimizando el Rendimiento de Búsqueda
- Escalando Elasticsearch
- Monitoreo y Mantenimiento
- Respaldo y Restauración
Módulo 6: Seguridad y Control de Acceso
- Asegurando Elasticsearch
- Autenticación y Autorización de Usuarios
- Control de Acceso Basado en Roles
- Auditoría y Cumplimiento
Módulo 7: Integraciones y Ecosistema
- Elasticsearch con Logstash
- Elasticsearch con Kibana
- Elasticsearch con Beats
- Elasticsearch con Otras Herramientas