值数量(value_count)聚合

一个 single-value(单值) 度量聚合,计算从聚合文档中提取的值的数量。 这些值可以从文档的指定字段中提取,也可以由提供的脚本生成。 通常,此聚合器将与其他单值聚合一起使用。 例如,在计算 avg(平均值) 时,人们可能会对计算平均值的值的数量感兴趣。

POST /sales/_search?size=0
{
    "aggs" : {
        "types_count" : { "value_count" : { "field" : "type" } }
    }
}

响应为:

{
    ...
    "aggregations": {
        "types_count": {
            "value": 7
        }
    }
}

聚合的名称(上面的types_count)也用作 key,通过它可以从返回的响应中检索聚合结果。

script (脚本)

计算脚本生成的值:

POST /sales/_search?size=0
{
    "aggs" : {
        "type_count" : {
            "value_count" : {
                "script" : {
                    "source" : "doc['type'].value"
                }
            }
        }
    }
}

这将把 script 参数解释为一个inline(内联) 脚本,使用 painless(无痛) 脚本语言,没有脚本参数。 要使用存储的脚本,请使用以下语法:

POST /sales/_search?size=0
{
    "aggs" : {
        "types_count" : {
            "value_count" : {
                "script" : {
                    "id": "my_script",
                    "params" : {
                        "field" : "type"
                    }
                }
            }
        }
    }
}