# Ordering terms in term aggregation in the new Java API Client

**URL:** https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716
**Category:** Elasticsearch
**Created:** [June 3, 2024, 12:48pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716 "2024-06-03T12:48:27Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![PodarcisMuralis](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/podarcismuralis/32/122606_2.png) [@PodarcisMuralis](https://discuss.elastic.co/u/PodarcisMuralis)
#### Post date: [June 3, 2024, 12:48pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716/1 "2024-06-03T12:48:27Z")

</div>

I have such an aggregation query in the old High Rest Client and want to convert it into the same query in the new Java API Client but there is not sort function in the terms query. How can we convert it? Or is it by default integrated?

```auto
"aggregations": {
        "DOC_TYPE": {
            "filter": {
                "bool": {
                    "adjust_pure_negative": true,
                    "boost": 1
                }
            },
            "aggregations": {
                "DOC_TYPE": {
                    "terms": {
                        "field": "doc_type",
                        "size": 50,
                        "min_doc_count": 1,
                        "shard_min_doc_count": 0,
                        "show_term_doc_count_error": false,
                        "order": [
                            {
                                "_count": "desc"
                            },
                            {
                                "_key": "asc"
                            }
                        ]
                    }
                }
            }
        }
    }

```

---

<div class="post-metadata">

### Author: ![RabBit\_BR](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rabbit_br/32/82261_2.png) [@RabBit\_BR](https://discuss.elastic.co/u/RabBit_BR)
#### Post date: [June 3, 2024, 1:23pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716/2 "2024-06-03T13:23:45Z")

</div>

Hi @PodarcisMuralis

I think it could be like this:

```auto
 new Aggregation.Builder()
        .terms(new TermsAggregation.Builder()
            .field("doc_type")
            .order(NamedValue.of("_count", SortOrder.Asc), NamedValue.of("_key", SortOrder.Asc))
            .size(5).build())
        .build();

```

---

<div class="post-metadata">

### Author: ![PodarcisMuralis](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/podarcismuralis/32/122606_2.png) [@PodarcisMuralis](https://discuss.elastic.co/u/PodarcisMuralis)
#### Post date: [June 3, 2024, 1:27pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716/3 "2024-06-03T13:27:25Z")

</div>

Thanks but I need to maintain this pattern in code and I could not create the order part.

```auto
 Aggregation aggregation = Aggregation.of(agg -> agg
                .filter(filter -> filter
                        .bool(bool -> bool))
                .aggregations(aggregationName, subAggregation -> subAggregation
                        .terms(terms -> terms
                                .field(fieldName)
                                .size(50)
                                .minDocCount(1)
                                .showTermDocCountError(false))));

```

---

<div class="post-metadata">

### Author: ![RabBit\_BR](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rabbit_br/32/82261_2.png) [@RabBit\_BR](https://discuss.elastic.co/u/RabBit_BR)
#### Post date: [June 3, 2024, 1:30pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716/4 "2024-06-03T13:30:59Z")

</div>

```
    .terms(term -> term
        .field("doc_type")
        .size(50)
        .minDocCount(1)
        .showTermDocCountError(false)
        .order(NamedValue.of("_count", SortOrder.Asc), NamedValue.of("_key", SortOrder.Asc))
    )

```

---

<div class="post-metadata">

### Author: ![PodarcisMuralis](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/podarcismuralis/32/122606_2.png) [@PodarcisMuralis](https://discuss.elastic.co/u/PodarcisMuralis)
#### Post date: [June 3, 2024, 2:08pm UTC](https://discuss.elastic.co/t/ordering-terms-in-term-aggregation-in-the-new-java-api-client/360716/5 "2024-06-03T14:08:57Z")

</div>

Ah my bad, I was indenting in the wrong curly brace.  
Thanks a lot!
