Elasticsearch & Full Text Search Systems · Lezione

Aggregazioni nested e sottoaggregazioni

Impari a combinare le aggregazioni annidando metriche nei bucket, creando analisi su più livelli e attraversando strutture di documenti annidate con l'aggregazione nested.

Lezione 4 di 413 passaggi

Aggregazioni nested e sottoaggregazioni è una lezione Elasticsearch & Full Text Search Systems gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Elasticsearch & Full Text Search Systems, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Elasticsearch & Full Text Search Systems include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Combining Aggregations

A single aggregation answers one question. Real analytics often need layered answers: average price per category, or top brands per region. Elasticsearch lets you nest aggregations inside one another.

This lesson shows how to compose them.

The aggs Hierarchy

Any bucket aggregation can contain a sub-aggs block. The sub-aggregation runs once per bucket, operating only on the documents in that bucket.

This is the core mechanism for multi-dimensional analytics.

Metric Inside a Bucket

Here we group documents by category, then compute the average price within each group. The metric aggregation lives inside the bucket aggregation's aggs.

GET sales/_search
{
  "size": 0,
  "aggs": {
    "by_category": {
      "terms": { "field": "category" },
      "aggs": {
        "avg_price": { "avg": { "field": "price" } }
      }
    }
  }
}

Reading the Result

Each bucket in by_category now carries an avg_price value alongside its doc_count. You get the category name, how many docs it holds, and its average price in one response.

Bucket Inside a Bucket

You can nest bucket aggregations too. Group by region, then by brand within each region. This produces a two-level breakdown.

"aggs": {
  "by_region": {
    "terms": { "field": "region" },
    "aggs": {
      "by_brand": { "terms": { "field": "brand" } }
    }
  }
}

Mind the Cardinality

Deeply nested terms aggregations can explode combinatorially. A region with 50 brands across 20 regions yields up to 1,000 buckets. Use the size parameter to limit returned buckets and protect memory.

Multiple Sub-Aggregations

A bucket can hold several sub-aggregations at once. Here each category reports both its average and maximum price.

"by_category": {
  "terms": { "field": "category" },
  "aggs": {
    "avg_price": { "avg": { "field": "price" } },
    "max_price": { "max": { "field": "price" } }
  }
}

The nested Aggregation

When data uses the nested field type, you must enter that scope with a nested aggregation before aggregating on its inner fields. It points at a path.

"aggs": {
  "variants": {
    "nested": { "path": "variants" },
    "aggs": {
      "avg_qty": { "avg": { "field": "variants.quantity" } }
    }
  }
}

Reverse Nested

Inside a nested aggregation you can jump back to the parent document scope using reverse_nested. This lets you count distinct parent docs that contain a matching nested element.

"reverse_nested": {},
"aggs": {
  "parent_count": { "value_count": { "field": "_id" } }
}

Sorting Buckets by a Metric

Order parent buckets by a nested sub-metric using order. Here categories are sorted by their average price, descending.

"terms": {
  "field": "category",
  "order": { "avg_price": "desc" }
}

Design Tips

Keep nesting shallow when possible, always set size on inner terms, and put the most selective bucket aggregation first to reduce the work done by deeper levels.

Quick Check

Test your grasp of sub-aggregations.

Recap

You learned to compose aggregations:

  • Any bucket aggregation can hold sub-aggs that run per bucket.
  • Nest metrics in buckets, or buckets in buckets for multi-level breakdowns.
  • Use the nested and reverse_nested aggregations to traverse nested document scopes.
  • Control bucket explosion with size and order buckets by sub-metrics with order.
Gratis per iniziare

Impara Elasticsearch & Full Text Search Systems con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Aggregazioni nested e sottoaggregazioni» è gratuita?

Sì — il testo completo di «Aggregazioni nested e sottoaggregazioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Elasticsearch & Full Text Search Systems, passa a CoddyKit PRO. Il corso Elasticsearch & Full Text Search Systems include 4 lezioni in totale.

Cosa imparerò in «Aggregazioni nested e sottoaggregazioni»?

Impari a combinare le aggregazioni annidando metriche nei bucket, creando analisi su più livelli e attraversando strutture di documenti annidate con l'aggregazione nested. Eserciti Elasticsearch & Full Text Search Systems con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Elasticsearch & Full Text Search Systems?

Non è richiesta alcuna esperienza precedente. Elasticsearch & Full Text Search Systems su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Aggregazioni nested e sottoaggregazioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Elasticsearch & Full Text Search Systems?

Sì. Ogni lezione Elasticsearch & Full Text Search Systems include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Aggregazioni metriche
  2. Aggregazioni a bucket
  3. Aggregazioni a pipeline
  4. Aggregazioni nested e sottoaggregazioni
← Torna a Elasticsearch & Full Text Search Systems