Consultas de Rango y Agregaciones en Elastic Search con Postman

Clase 14 de 16Curso de Introducción a Elasticsearch

Resumen

¿Qué son las consultas de rango y cómo se usan en Elastic Search?

El poder de Elastic Search reside en su capacidad para realizar búsquedas avanzadas mediante el uso de consultas de rango y agregaciones. Estas herramientas permiten a los usuarios realizar búsquedas precisas basadas en criterios específicos, tales como valores numéricos o fechas.

¿Cómo personalizar los campos de respuesta?

Cuando se realiza una búsqueda en Elastic Search, por defecto se devuelven todos los campos del documento. Sin embargo, es posible personalizar la búsqueda para obtener solo la información necesaria. Esto se realiza mediante el uso de la opción "_source", que permite especificar una lista de campos que queremos en la respuesta.

{
  "_source": ["nombre", "calificación"],
  "query": {
    "range": {
      "calificación": {
        "gt": 3.5,
        "lte": 4.5
      }
    }
  }
}

En este ejemplo, la consulta está configurada para devolver solo el nombre y la calificación de los restaurantes que cumplen con el rango de calificación.

¿Cómo realizar consultas de rango?

Las consultas de rango son especialmente útiles para filtrar documentos con valores dentro de un cierto rango. Ya sea números o fechas, Elastic Search permite definir estas consultas de manera sencilla.

  • Para números:

    Al filtrar por calificación, el símbolo GT se usa para indicar "mayor que", mientras que LTE incluye valores "menores o iguales que".

    "range": {
      "calificación": {
        "gt": 3.5,
        "lte": 4.5
      }
    }
    
  • Para fechas:

    Al buscar por fecha de última modificación, puedes definir el periodo usando formatos de fecha específicos.

    "range": {
      "última_modificación.fecha": {
        "gte": "2020-01-15",
        "lt": "2020-03-01"
      }
    }
    

En estos casos, la consulta devuelve documentos asociados a fechas entre el 15 de enero y el último día de febrero de 2020.

¿Qué son las agregaciones en Elastic Search?

Las agregaciones son poderosas herramientas en Elastic Search que permiten computar métricas sobre los datos obtenidos en una consulta.

Ejemplos de agregaciones

Las agregaciones permiten realizar cálculos como el promedio, máximo y mínimo sobre los resultados de la búsqueda.

{
  "aggs": {
    "calificación_promedio": {
      "avg": {
        "field": "calificación"
      }
    },
    "calificación_máxima": {
      "max": {
        "field": "calificación"
      }
    },
    "calificación_mínima": {
      "min": {
        "field": "calificación"
      }
    }
  }
}

Con los resultados, puedes identificar que la calificación promedio, máxima y mínima se computan en base a los datos retornados.

Incluyendo campos faltantes en agregaciones

A veces, los documentos pueden no tener ciertos campos, y es posible definir un valor por defecto para ellos en las agregaciones. Esto se hace usando la propiedad missing.

{
  "aggs": {
    "calificación_promedio": {
      "avg": {
        "field": "calificación",
        "missing": 3.0
      }
    }
  }
}

Usar la opción missing permite otorgar un valor predeterminado (en este caso, 3.0) a los documentos que no tienen calificación, afectando así el cálculo del promedio global.

Con estas herramientas, Elastic Search habilita a los desarrolladores para crear filtrados de datos y agregaciones de forma sencilla y eficiente, potenciando el análisis y uso de los datos almacenados. ¡Sigue aprendiendo y abriendo nuevas posibilidades con Elastic Search!