Bucket Sort Aggregation
The BucketSort aggregation is a parent pipeline aggregation which sorts the buckets of its parent multi-bucket aggregation. Zero or more sort fields may be specified together with the corresponding sort order.
To create a BucketSort aggregation do the following:
import zio.elasticsearch.aggregation.BucketSortAggregation
import zio.elasticsearch.ElasticAggregation.bucketSortAggregation
val aggregation: BucketSortAggregation = bucketSortAggregation(name = "aggregationSort")
If you want to change the from, you can use from method:
val aggregationWithFrom: BucketSortAggregation = bucketSortAggregation(name = "aggregationSort").from(5)
If you want to change the size, you can use size method:
val aggregationWithSize: BucketSortAggregation = bucketSortAggregation(name = "aggregationSort").size(5)
If you want to change the sort, you can use sort method:
import zio.elasticsearch.query.sort.SortByField.{byCount, byKey}
val aggregationWithSort: BucketSortAggregation = bucketSortAggregation(name = "aggregationSort").sort(byCount, byKey)
If you want to add aggregation (on the same level), you can use withAgg method:
val multipleAggregations: MultipleAggregations = bucketSortAggregation(name = "aggregationSort").withAgg(maxAggregation(name = "maxAggregation", field = Document.doubleField))
You can find more information about BucketSort aggregation here.