Chapter 31. Sorting Multivalue Buckets
Multivalue buckets—the terms, histogram, and date_histogram—dynamically produce many buckets. How does Elasticsearch decide the order that
these buckets are presented to the user?
By default, buckets are ordered by doc_count in descending order. This is a
good default because often we want to find the documents that maximize some
criteria: price, population, frequency. But sometimes you’ll want to modify this sort order, and there are a few ways to
do it, depending on the bucket.
Intrinsic Sorts
These sort modes are intrinsic to the bucket: they operate on data that bucket
generates, such as doc_count. They share the same syntax but differ slightly
depending on the bucket being used.
Let’s perform a terms aggregation but sort by doc_count, in ascending order:
GET/cars/transactions/_search?search_type=count{"aggs":{"colors":{"terms":{"field":"color","order":{"_count":"asc"![]()
}}}}}
We introduce an order object into the aggregation, which allows us to sort on
one of several values:
_count-
Sort by document count. Works with
terms,histogram,date_histogram. _term-
Sort by the string value of a term alphabetically. Works only with
terms. _key-
Sort ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access