Sorting on an aggregation in Elasticsearch

To sort on an aggregation in Elasticsearch, you can use the "order" parameter in the aggregation definition.

Here is an example using the "terms" aggregation:

GET /my_index/_search
{
  "size": 0,
  "aggs": {
    "my_agg": {
      "terms": {
        "field": "my_field",
        "order": {
          "my_metric": "desc"
        }
      },
      "aggs": {
        "my_metric": {
          "avg": {
            "field": "my_numeric_field"
          }
        }
      }
    }
  }
}

In this example, the "terms" aggregation groups documents by the "my_field" field and calculates the average of the "my_numeric_field" field for each group using the "avg" aggregation. The "order" parameter sorts the groups in descending order based on the average calculated by the "my_metric" aggregation.

You can adjust the sorting order by changing the "desc" parameter to "asc" if you want to sort in ascending order. You can also sort based on other metrics or fields by changing the value of the "my_metric" parameter in the "order" parameter.

댓글

이 블로그의 인기 게시물

Fundamentals of English Grammar #1

To switch to a specific tag in a Git repository

kafka polling vs listen

Create topic on Kafka with partition count, 카프카 토픽 생성하기

Scan an HBase table with a prefix filter

To download a file from MinIO using Spring Boot, 스프링부트 Minio 사용하기

Joining an additional control plane node to an existing Kubernetes cluster

Vespa vs Milvus

max_active_runs of Airflow

urllib3 with proxy settings