平均值聚合
avg
指标是一个单值指标,它返回字段的平均值。
参数
avg
聚合接受以下参数。
参数 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
field(字段) | 必需 | 字符串 | 计算平均值的字段。 |
missing(缺失值) | 可选 | 浮点型 | 为字段的缺失实例分配的值。默认情况下,avg 会从计算中忽略缺失值。 |
示例
以下示例请求计算 OpenSearch 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
}
}
}