Terms Aggregation

A multi-bucket value source based aggregation where buckets are dynamically built - one per unique term.

Performance
Whenever is possible, prefer Values Aggregation to this type as it’s more efficient.

Structuring

The following snippet captures the structure of range aggregations:

"<aggregation_name>": {
  "_terms": {
    "_field": "<field_name>"
  },
  ...
}

Also supports all other functionality as explained in Bucket Aggregations.

Field

The <field_name> in the _field parameter defines the field on which the aggregation will act upon.

Assuming the data consists of documents representing bank accounts, as shown in the sample dataset of Data Exploration section:

SEARCH /bank/
{
  "_query": "*",
  "_limit": 0,
  "_check_at_least": 1000,
  "_aggregations": {
    "most_used_terms": {
      "_terms": {
        "_field": "personality"
      }
    }
  }
}

Response:

{
  "aggregations": {
    "_doc_count": 1000,
    "most_used_terms": [
      ...
    ]
  }, ...
}

Ordering

By default, the returned buckets are sorted by their _doc_count descending, though the order behaviour can be controlled using the _sort setting. Supports the same order functionality as explained in Bucket Ordering.