原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/search-aggregations-metrics-max-aggregation.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/search-aggregations-metrics-max-aggregation.html
本地英文版地址: ../en/search-aggregations-metrics-max-aggregation.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
single-value(单值) 度量聚合,跟踪并返回从聚合文档中提取的数值的最大值。
这些值可以从文档中指定的 numeric 字段中提取,也可以由提供的脚本生成。
min 和 max 聚合对数据以 double(双精度) 进行操作。
因此,在绝对值大于 2^53 的长整型上运行时,结果可能是近似的。
计算所有文档的最高价格(max_price):
POST /sales/_search?size=0
{
"aggs" : {
"max_price" : { "max" : { "field" : "price" } }
}
}
响应:
{
...
"aggregations": {
"max_price": {
"value": 200.0
}
}
}
可以看到,聚合的名称(上面的max_price)也作为键,通过它可以从返回的响应中检索聚合结果。
max 聚合还可以计算脚本的最大值。以下示例计算最高价格:
POST /sales/_search
{
"aggs" : {
"max_price" : {
"max" : {
"script" : {
"source" : "doc.price.value"
}
}
}
}
}
这将使用 painless(无痛) 脚本语言,没有脚本参数。 要使用存储的脚本,请使用以下语法:
POST /sales/_search
{
"aggs" : {
"max_price" : {
"max" : {
"script" : {
"id": "my_script",
"params": {
"field": "price"
}
}
}
}
}
}
假设索引中的文档价格以美元为单位,但是我们想以欧元计算最大值(这个例子中,假设兑换率是1.2)。 我们可以使用值脚本,在汇总每个值之前对其应用转换率(conversion_rate):
POST /sales/_search
{
"aggs" : {
"max_price_in_euros" : {
"max" : {
"field" : "price",
"script" : {
"source" : "_value * params.conversion_rate",
"params" : {
"conversion_rate" : 1.2
}
}
}
}
}
}