值计数聚合(Value Count Aggregation)

值计数聚合(Value Count Aggregation)

single-value 度量聚合就是计算从文档中 提取/获取(extracted)的值的数量。这些值可以从文档指定的 字段/属性(field)中提取,或者从给定的脚本中生成。特别的(Typically),该聚合器可以与其他single-value聚合结合使用。例如,当计算一个对计算得到的平均值的值的数量感兴趣的avg查询时。

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

响应(Response):

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

聚合的名字(type_count 上面)也作为key使聚合结果可以从响应中重新获取。

脚本(Script)

计算脚本生成的值:

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

这将使用painless 脚本语言将 script 参数解释为内联脚本,没有脚本参数。使用如下的语法来使用文件脚本(file script):

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

提示:对于索引脚本需要将file参数替换为id参数。