平均值聚合
avg 指标是一个单值指标,返回字段的平均值。
参数
avg 聚合接受以下参数。
| 参数 | 必填/可选 | 数据类型 | 描述 |
|---|---|---|---|
field |
必填 | 字符串 | 要计算平均值的字段。 |
missing |
可选 | 浮点数 | 为字段的缺失值赋予的值。默认情况下,avg 在计算中会忽略缺失值。 |
示例
以下示例请求计算 UDB-SX Dashboards 电子商务示例数据中 taxful_total_price 字段的平均值:
GET opensearch_dashboards_sample_data_ecommerce/_search
{
"size": 0,
"aggs": {
"avg_taxful_total_price": {
"avg": {
"field": "taxful_total_price"
}
}
}
}
示例响应
响应包含 taxful_total_price 的平均值:
{
"took": 85,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 4675,
"relation": "eq"
},
"max_score": null,
"hits": []
},
"aggregations": {
"avg_taxful_total_price": {
"value": 75.05542864304813
}
}
}
您可以使用聚合名称 (avg_taxful_total_price) 作为键从响应中检索聚合结果。
缺失值
您可以为聚合字段的缺失实例分配一个值。有关更多信息,请参阅缺失值聚合。
通过摄取以下文档准备一个示例索引。请注意,第二个文档缺少 gpa 值:
POST _bulk
{ "create": { "_index": "students", "_id": "1" } }
{ "name": "John Doe", "gpa": 3.89, "grad_year": 2022}
{ "create": { "_index": "students", "_id": "2" } }
{ "name": "Jonathan Powers", "grad_year": 2025 }
{ "create": { "_index": "students", "_id": "3" } }
{ "name": "Jane Doe", "gpa": 3.52, "grad_year": 2024 }
示例:替换缺失值
计算平均值,将缺失的 GPA 字段替换为 0:
GET students/_search
{
"size": 0,
"aggs": {
"avg_gpa": {
"avg": {
"field": "gpa",
"missing": 0
}
}
}
}
响应如下。请与下一个示例(忽略缺失值)进行比较:
{
"took": 12,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": null,
"hits": []
},
"aggregations": {
"avg_gpa": {
"value": 2.4700000286102295
}
}
}
示例:忽略缺失值
计算平均值,但不分配 missing 参数:
GET students/_search
{
"size": 0,
"aggs": {
"avg_gpa": {
"avg": {
"field": "gpa"
}
}
}
}
聚合器计算平均值,忽略包含缺失字段值的文档(默认行为):
{
"took": 255,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 3,
"relation": "eq"
},
"max_score": null,
"hits": []
},
"aggregations": {
"avg_gpa": {
"value": 3.7050000429153442
}
}
}