Introducción
En Elasticsearch, el mapeo y los analizadores son componentes esenciales para definir cómo se indexan y se buscan los datos. Este módulo te guiará a través de los conceptos clave y las prácticas recomendadas para trabajar con mapeos y analizadores en Elasticsearch.
Conceptos Clave
Mapeo (Mapping)
El mapeo en Elasticsearch es el proceso de definir cómo se almacenan y se indexan los documentos y sus campos. Es similar a la definición de una tabla en una base de datos relacional.
- Tipos de Datos: Define el tipo de datos de cada campo (texto, número, fecha, booleano, etc.).
- Propiedades de Campo: Configura propiedades adicionales como analizadores, formatos de fecha, etc.
- Campos Dinámicos: Permite la creación automática de campos no definidos previamente.
Analizadores (Analyzers)
Los analizadores en Elasticsearch son responsables de procesar el texto durante la indexación y la búsqueda. Un analizador se compone de tres partes principales:
- Tokenizador (Tokenizer): Divide el texto en términos o tokens.
- Filtros de Token (Token Filters): Modifican los tokens generados por el tokenizador.
- Filtros de Caracteres (Character Filters): Modifican el texto antes de que sea tokenizado.
Ejemplo Práctico: Definiendo un Mapeo y un Analizador
Paso 1: Crear un Índice con un Mapeo Personalizado
Primero, crearemos un índice llamado mi_indice con un mapeo personalizado para un campo de texto.
PUT /mi_indice
{
"mappings": {
"properties": {
"titulo": {
"type": "text",
"analyzer": "standard"
},
"fecha_publicacion": {
"type": "date",
"format": "yyyy-MM-dd"
},
"contenido": {
"type": "text",
"analyzer": "custom_analyzer"
}
}
}
}Paso 2: Definir un Analizador Personalizado
Ahora, definiremos un analizador personalizado llamado custom_analyzer que utilizaremos en el campo contenido.
PUT /mi_indice/_settings
{
"analysis": {
"analyzer": {
"custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase", "stop"]
}
}
}
}Explicación del Código
-
Índice y Mapeo:
titulo: Campo de tipotextque utiliza el analizador estándar.fecha_publicacion: Campo de tipodatecon formatoyyyy-MM-dd.contenido: Campo de tipotextque utiliza un analizador personalizado.
-
Analizador Personalizado:
custom_analyzer: Un analizador que utiliza el tokenizador estándar y dos filtros de token:lowercase(convierte los tokens a minúsculas) ystop(elimina palabras vacías como "y", "o", "el").
Ejercicio Práctico
Ejercicio 1: Crear un Índice con Mapeo y Analizador Personalizado
-
Crea un índice llamado
blogcon los siguientes campos:titulo: Tipotextcon el analizador estándar.autor: Tipokeyword.contenido: Tipotextcon un analizador personalizado que convierta el texto a minúsculas y elimine palabras vacías.fecha: Tipodatecon formatoyyyy-MM-dd.
-
Define el analizador personalizado en la configuración del índice.
Solución
PUT /blog
{
"settings": {
"analysis": {
"analyzer": {
"custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["lowercase", "stop"]
}
}
}
},
"mappings": {
"properties": {
"titulo": {
"type": "text",
"analyzer": "standard"
},
"autor": {
"type": "keyword"
},
"contenido": {
"type": "text",
"analyzer": "custom_analyzer"
},
"fecha": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}Resumen
En esta sección, hemos aprendido sobre los mapeos y analizadores en Elasticsearch. Hemos visto cómo definir un mapeo para un índice y cómo crear un analizador personalizado. Estos conceptos son fundamentales para optimizar la indexación y búsqueda de datos en Elasticsearch.
Próximos Pasos
En el siguiente tema, exploraremos las plantillas de índices, que nos permitirán definir configuraciones y mapeos predeterminados para nuevos índices.
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
