【ES】学习11-多桶排序

聚合结果的排序

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

内置排序:

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

GET /cars/transactions/_search
{
    "size" : 0,
    "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" : 0,
    "aggs" : {
        "colors" : {
            "terms" : {
              "field" : "color",
              "order": {
                "avg_price" : "asc" 
              }
            },
            "aggs": {
                "avg_price": {
                    "avg": {"field": "price"} 
                }
            }
        }
    }
}

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

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

深层路径:>嵌套

GET /cars/transactions/_search
{
    "size" : 0,
    "aggs" : {
        "colors" : {
            "histogram" : {
              "field" : "price",
              "interval": 20000,
              "order": {
                "red_green_cars>stats.variance" : "asc" 
              }
            },
            "aggs": {
                "red_green_cars": {
                    "filter": { "terms": {"color": ["red", "green"]}}, 
                    "aggs": {
                        "stats": {"extended_stats": {"field" : "price"}} 
                    }
                }
            }
        }
    }
}
原文地址:https://www.cnblogs.com/dplearning/p/7026960.html