Matrix Stats

原文链接 : https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-aggregations-matrix-stats-aggregation.html

译文链接 : http://www.apache.wiki/pages/createpage-entervariables.action?templateId=4816898&spaceKey=Elasticsearch&title=&newSpaceKey=Elasticsearch&fromPageId=10030244

贡献者 : 程威ApacheCNApache中文网

matrix_stats 聚合是一个数字聚合,它会对一组文档字段计算以下统计数据:

| count | 计算中每个字段样本的数量 | | mean | 每个字段的平均值。 | | variance | 每个字段测量如何从mean 值展开样本。 | | skewness | 每个字段测量量化mean周围的不对称分布。 | | kurtosis | 每个字段测量量化分布的形状。 | | covariance | 一个矩阵描述一个字段与另一个相关联字段的变化。 | | correlation | 协方差矩阵缩放到-1到1的范围。描述字段分布之间的关系。 |

以下示例演示了使用矩阵统计来描述收入与贫困之间的关系。

  1. {
  2. "aggs": {
  3. "matrixstats": {
  4. "matrix_stats": {
  5. "fields": ["poverty", "income"]
  6. }
  7. }
  8. }
  9. }

聚合类型是matrix_stats,字段设置定义用于计算统计信息的字段集(作为数组)。上述请求返回以下响应:

  1. {
  2. ...
  3. "aggregations": {
  4. "matrixstats": {
  5. "fields": [{
  6. "name": "income",
  7. "count": 50,
  8. "mean": 51985.1,
  9. "variance": 7.383377037755103E7,
  10. "skewness": 0.5595114003506483,
  11. "kurtosis": 2.5692365287787124,
  12. "covariance": {
  13. "income": 7.383377037755103E7,
  14. "poverty": -21093.65836734694
  15. },
  16. "correlation": {
  17. "income": 1.0,
  18. "poverty": -0.8352655256272504
  19. }
  20. }, {
  21. "name": "poverty",
  22. "count": 50,
  23. "mean": 12.732000000000001,
  24. "variance": 8.637730612244896,
  25. "skewness": 0.4516049811903419,
  26. "kurtosis": 2.8615929677997767,
  27. "covariance": {
  28. "income": -21093.65836734694,
  29. "poverty": 8.637730612244896
  30. },
  31. "correlation": {
  32. "income": -0.8352655256272504,
  33. "poverty": 1.0
  34. }
  35. }]
  36. }
  37. }
  38. }

Multi Value Fields

matrix_stats聚合将每个文档字段视为独立样本。 mode参数控制聚合将用于数组或多值字段的数组值。此参数可以采取以下之一:

| avg | (默认值)使用所有值的平均值。 | | min | 选择最低值。 | | max | 选择最大值. | | sum | 使用所有值的总和。 | | median | 使用所有值的中值。 |

Missing Values

缺少的参数定义了如何处理缺少值的文档。默认情况下,它们将被忽略,但也可以将它们视为具有值。这是通过添加一组fieldname:值映射来指定每个字段的默认值来完成的。

  1. {
  2. "aggs": {
  3. "matrixstats": {
  4. "matrix_stats": {
  5. "fields": ["poverty", "income"],
  6. "missing": {"income" : 50000} 1
  7. }
  8. }
  9. }
  10. }

| 1 | 收入字段中没有值的文档的默认值为50000。 |

Script

此聚合系列尚不支持脚本。