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.

댓글

이 블로그의 인기 게시물

To build a gRPC service with Gradle, Java, and Avro

The pierce selector in Puppeteer

how to describe kafka topics, 카프카 토픽 정보 확인하기

Using the MinIO API via curl

오늘의 문장2

[Ubuntu] update-alternatives(Symbolic Link 관리)

언어의 어순과 문화적 특징의 관계를 생각해봅니다.

how to delete all issues on project in sentry, 센트리 이슈 삭제하기

PySpark Dataframe from HBase