Command Palette

Search for a command to run...

ES·EN

Nivel 2 · 25 min

Aggregations

Las aggregations de Elasticsearch transforman tus datos en analytics: conteos, sumas, histogramas y facetas multidimensionales. Entender las tres familias de aggregations y cómo combinarlas es esencial para construir dashboards y facetas de búsqueda.

Metric Aggregations

Las metric aggregations calculan valores numéricos de un conjunto de documentos. Métricas de un solo valor: avg, sum, max, min, cardinality (conteo aproximado de distintos via HyperLogLog), value_count. Métricas multi-valor: stats (min, max, avg, sum, count en un solo pasaje), extended_stats (agrega variance, std_deviation), percentiles (aproximado via TDigest), percentile_ranks. Cardinality y percentiles usan algoritmos probabilísticos: intercambian precisión por eficiencia de memoria. El parámetro precision_threshold en cardinality controla este trade-off.

Bucket Aggregations

Las bucket aggregations agrupan documentos en buckets y opcionalmente aplican sub-aggregations dentro de cada bucket. terms agrupa por valor de campo — top N valores por conteo de documentos. date_histogram crea buckets temporales (calendar_interval: day/week/month o fixed_interval: 1h/7d). range crea rangos numéricos personalizados. nested maneja campos de array-de-objetos. La composite aggregation pagina a través de todas las combinaciones únicas de múltiples campos.

Pipeline Aggregations

Las pipeline aggregations operan sobre la salida de otras aggregations en lugar de directamente sobre documentos. Parent pipeline aggregations calculan valores por bucket de una aggregation padre: derivative (tasa de cambio entre buckets), moving_avg (promedio móvil), cumulative_sum. Sibling pipeline aggregations calculan un único valor de todos los buckets: max_bucket, min_bucket, avg_bucket, bucket_selector (filtra buckets basándose en sus valores métricos). Las pipeline aggregations permiten analytics avanzados como detección de anomalías y análisis de tendencias.

Puntos clave

  • Las metric aggregations calculan estadísticas de valores de documentos. Las bucket aggregations agrupan documentos. Las pipeline aggregations calculan a partir de resultados de otras aggregations.
  • cardinality y percentiles usan algoritmos aproximados (HyperLogLog, TDigest). Son eficientes en memoria pero no exactos. Para conteos exactos, usá value_count en un campo keyword.
  • Las sub-aggregations se anidan dentro de bucket aggregations, habilitando analytics multi-nivel poderosos: top categorías por ingresos con precio promedio por categoría.

Code example

POST /orders/_search\n{\n  "size": 0,\n  "query": {"range": {"date": {"gte": "now-30d"}'}'},\n  "aggs": {\n    "by_category": {\n      "terms": {"field": "category", "size": 5},\n      "aggs": {\n        "total_revenue": {"sum": {"field": "price"}'}',\n        "avg_price": {"avg": {"field": "price"}'}'\n      }\n    }\n  }\n}