值计数聚合(Value Count Aggregation)

原文链接:

https://www.elastic.co/guide/en/elasticsearch/reference/5.x/search-aggregations-metrics-valuecount-aggregation.html

译文链接:值计数聚合

贡献者:昆仑子ApacheCNApache中文网

值计数聚合(Value Count Aggregation)

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

  1. POST /sales/_search?size=0
  2. {
  3. "aggs" : {
  4. "types_count" : { "value_count" : { "field" : "type" } }
  5. }
  6. }

响应(Response):

  1. {
  2. ...
  3. "aggregations": {
  4. "types_count": {
  5. "value": 7
  6. }
  7. }
  8. }

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

脚本(Script)

计算脚本生成的值:

  1. POST /sales/_search?size=0
  2. {
  3. "aggs" : {
  4. "type_count" : {
  5. "value_count" : {
  6. "script" : {
  7. "inline" : "doc['type'].value"
  8. }
  9. }
  10. }
  11. }
  12. }

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

  1. POST /sales/_search?size=0
  2. {
  3. "aggs" : {
  4. "types_count" : {
  5. "value_count" : {
  6. "script" : {
  7. "file": "my_script",
  8. "params" : {
  9. "field" : "type"
  10. }
  11. }
  12. }
  13. }
  14. }
  15. }

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