【ES】学习11-多桶排序

时间:2022-06-27 05:40:37

聚合结果的排序

默认:桶会根据 doc_count 降序排列。

内置排序:

设置按doc_count升序排序:注意order_count

GET /cars/transactions/_search
{
"size" : ,
"aggs" : {
"colors" : {
"terms" : {
"field" : "color",
"order": {
"_count" : "asc"
}
}
}
}
}

其他排序关键字:

_count  按文档数排序。对 terms 、 histogram 、 date_histogram 有效。

_term  按词项的字符串值的字母顺序排序。只在 terms 内使用。

_key  按每个桶的键值数值排序(理论上与 _term 类似)。 只在 histogram 和date_histogram 内使用。

按度量排序:根据字段名称引用度量即可

GET /cars/transactions/_search
{
"size" : ,
"aggs" : {
"colors" : {
"terms" : {
"field" : "color",
"order": {
"avg_price" : "asc"
}
},
"aggs": {
"avg_price": {
"avg": {"field": "price"}
}
}
}
}
}

多值度量使用点式路径:extended_stats度量输出多个度量值

GET /cars/transactions/_search
{
"size" : ,
"aggs" : {
"colors" : {
"terms" : {
"field" : "color",
"order": {
"stats.variance" : "asc"
}
},
"aggs": {
"stats": {
"extended_stats": {"field": "price"}
}
}
}
}
}

深层路径:>嵌套

GET /cars/transactions/_search
{
"size" : ,
"aggs" : {
"colors" : {
"histogram" : {
"field" : "price",
"interval": ,
"order": {
"red_green_cars>stats.variance" : "asc"
}
},
"aggs": {
"red_green_cars": {
"filter": { "terms": {"color": ["red", "green"]}},
"aggs": {
"stats": {"extended_stats": {"field" : "price"}}
}
}
}
}
}
}