Saltar al contenido

Lección 5 de 20 · Lectura y práctica

Quiz: Evaluación de conceptos de mapeo y analizadores

Tipo de lección: QuizConcepto claveEl mapeo avanzado en Elasticsearch define cómo los documentos son indexados y almacenados, determinando el comportamiento de búsqueda y análisis. A diferencia del mapeo dinámico básico, el mapeo.

Del concepto a la práctica

Taller de esta lección

Este repaso evalúa una decisión completa: qué tipo permite la operación que realmente necesitas. Considera titulo para texto, codigo para igualdad y fecha para intervalos. El analizador afecta tokens; el mapping afecta cómo se indexa y qué operaciones son posibles.

Ejemplo resuelto

Dado {"titulo":"Café molido","codigo":"A-7","precio":4.5}, la respuesta correcta es titulo como text, codigo como keyword y precio como tipo numérico. Buscar cafe requiere un analizador compatible con la normalización elegida; buscar A-7 exactamente requiere el campo de código sin análisis lingüístico.

Pruébalo

  1. Clasifica esos tres campos.

  2. Escribe una consulta de texto para titulo.

  3. Escribe un filtro exacto para codigo.

  4. Explica qué operación harías sobre precio para obtener una media.

Comprueba tu resultado

Error frecuente: usar match sobre un identificador y asumir igualdad literal. Corrige usando term sobre keyword. El ejercicio es verificable si la consulta de título puede encontrar cafe solo tras asignar la normalización lowercase+asciifolding al campo, el filtro solo encuentra A-7 y la media de un único precio es 4.5.

Flujo de datos: dos formatos de la misma fecha se normalizan y un vacío queda marcado antes de comprobar tipos, duplicados y unidades.
CursaloMapa de práctica
Antes del gráfico, revisa los datos

Antes de analizar, comprueba los tipos, valores vacíos, duplicados y unidades. Decide cómo tratar cada problema según el contexto y conserva la trazabilidad del cambio. Un gráfico solo es útil si los datos de entrada son coherentes.

Ver la infografía en tamaño completo ↗

Tipo de lección: Quiz

Concepto clave

El mapeo avanzado en Elasticsearch define cómo los documentos son indexados y almacenados, determinando el comportamiento de búsqueda y análisis. A diferencia del mapeo dinámico básico, el mapeo avanzado permite controlar precisamente los tipos de datos, analizadores, y configuraciones como norms y doc_values. Piensa en esto como el plano arquitectónico de un edificio: sin un diseño cuidadoso, las búsquedas pueden volverse lentas o imprecisas, similar a cómo una mala distribución espacial afecta el flujo en una construcción.

Los analizadores son componentes críticos que procesan el texto durante la indexación y búsqueda. Un analizador típico incluye un tokenizer (que divide el texto en tokens) y filtros (que modifican esos tokens, como lowercase o stop words). En un contexto avanzado, diseñar analizadores personalizados es clave para manejar casos específicos, como idiomas con caracteres especiales o dominios técnicos. Imagina un traductor especializado que no solo convierte palabras, sino que entiende jerga técnica; un analizador bien configurado actúa de manera similar para optimizar la relevancia en búsquedas full-text.

Cómo funciona en la práctica

Para implementar mapeo avanzado, se define un índice con configuraciones explícitas. Por ejemplo, al crear un índice para productos de e-commerce, podrías especificar campos como nombre con un analizador en español y precio como tipo float con doc_values habilitados para agregaciones rápidas. Aquí un paso a paso simplificado:

  1. Define el mapeo usando la API de Elasticsearch, especificando tipos de datos (e.g., text, keyword, date).
  2. Configura analizadores personalizados si es necesario, por ejemplo, para manejar hashtags en redes sociales.
  3. Indexa documentos que sigan este esquema, asegurando consistencia en los datos.

Un ejemplo de código básico:

PUT /productos
{
  "mappings": {
    "properties": {
      "nombre": {
        "type": "text",
        "analyzer": "spanish"
      },
      "categoria": {
        "type": "keyword"
      }
    }
  }
}

Caso de estudio

Considera una plataforma de noticias que necesita búsquedas full-text eficientes en artículos. El desafío incluye manejar múltiples idiomas, fechas de publicación, y términos clave como nombres de personas. Se implementa un índice con mapeo avanzado:

  • Campo titulo: tipo text con analizador en inglés para tokenización y filtro de sinónimos.
  • Campo autor: tipo keyword para búsquedas exactas, con doc_values para dashboards en Kibana.
  • Campo fecha_publicacion: tipo date con formato ISO para rangos temporales.

Esto mejora la precisión en búsquedas como "noticias sobre cambio climático en 2023" y acelera las agregaciones en Kibana para análisis de tendencias.

Errores comunes

  • Usar text para campos que requieren agregaciones: Los campos text no soportan doc_values por defecto, lo que ralentiza operaciones como sum o avg. Solución: usar keyword o habilitar fielddata con cuidado.
  • Ignorar la configuración de analizadores para idiomas específicos: Esto puede llevar a tokenización incorrecta, afectando la relevancia. Solución: seleccionar analizadores predefinidos (e.g., spanish) o crear personalizados.
  • No optimizar norms y index_options: Configuraciones por defecto pueden consumir memoria innecesaria. Solución: deshabilitar norms en campos donde el scoring no es crítico, y ajustar index_options para reducir overhead.

Checklist de dominio

  1. ¿Puedes definir un mapeo con tipos de datos apropiados (e.g., text vs keyword) para un caso de uso dado?
  2. ¿Sabes configurar un analizador personalizado para manejar caracteres especiales o stop words?
  3. ¿Entiendes cómo doc_values y norms afectan el rendimiento y almacenamiento?
  4. ¿Puedes identificar cuándo usar fielddata en campos text para agregaciones?
  5. ¿Eres capaz de optimizar un mapeo existente para mejorar la velocidad de búsqueda?
  6. ¿Comprendes la diferencia entre analizadores de indexación y búsqueda?
  7. ¿Puedes aplicar estas configuraciones en un escenario real con datos de ejemplo?

Optimización de Mapeo para un Sistema de Logs

En este ejercicio, optimizarás el mapeo de un índice de Elasticsearch para logs de aplicaciones, mejorando la eficiencia en búsquedas full-text y analytics. Sigue estos pasos:

  1. Crea un índice llamado logs_optimizado con un mapeo que incluya campos para mensaje (texto del log), nivel (e.g., ERROR, INFO), timestamp (fecha y hora), y aplicacion (nombre de la app).
  2. Configura el campo mensaje con un analizador personalizado que use un tokenizer estándar y filtros para lowercase y eliminar stop words en inglés.
  3. Define el campo nivel como tipo keyword para permitir agregaciones rápidas en Kibana, y deshabilita norms para ahorrar memoria.
  4. Indexa al menos 3 documentos de ejemplo con datos realistas, como logs de error o información.
  5. Ejecuta una búsqueda full-text en mensaje y una agregación por nivel para verificar el rendimiento.
Pistas
  • Recuerda que los campos keyword son ideales para filtros exactos y agregaciones.
  • Usa la API de Elasticsearch para crear el índice y definir analizadores en la configuración de mappings.
  • Prueba con datos variados para asegurar que el analizador funcione correctamente en diferentes escenarios.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.

Sigue con Implementación Avanzada de Búsqueda Full-Text y Analytics con Elasticsearch y Kibana

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.