如何在 kibana 中获取字段的总值 4.x
how to get the total value of field in kibana 4.x
我需要使用 script field.
获取 Kibana 中字段的总值
例如)如果 id 字段的值类似于 1、2、3、4、5
我正在寻找 sum
id 的所有值,我希望输出为 15。
我需要在得到每个字段的总和后实现下面的公式。
lifetime=a-b-c-(d-e-f)*g
这里a,b,c,d,e,f,g都是各个字段值的总和。
更多信息请参考我提出的question
您可以在 scripted fields
:
中执行类似的操作
doc['id'].value
因此,您可以使用 sum
聚合来获取 Kibana
中的总值。
这个SO可能会派上用场!
编辑
如果您尝试使用 Elasticsearch
执行此操作,您可以在请求正文中执行类似的操作:
"aggs":{
"total":{
"sum":{
"script":"doc['id'].value"
}
}
}
你可以跟进这个ref, but then if you're using painless
make sure you do include it within lang
.
你当然可以使用 sum 聚合来得到 id 的总和,但是为了进一步等同你的公式,你可以看看 pipeline aggregations 来使用 sum 值进行进一步的计算。
看看 bucket script aggregation,使用正确的存储桶路径求和聚合器,您可以实现您的解决方案。
示例文档
{
"a":100,
"b":200,
"c":400,
"d":600
}
查询
{
"size": 0,
"aggs": {
"result": {
"terms": {"script":"'nice to have it here'"},
"aggs": {
"suma": {
"sum": {
"field": "a"
}
},
"sumb": {
"sum": {
"field": "b"
}
},
"sumc": {
"sum": {
"field": "c"
}
},
"equation": {
"bucket_script": {
"buckets_path": {
"suma": "suma",
"sumb": "sumb",
"sumc" : "sumc"
},
"script": "suma + sumb + 2*sumc"
}
}
}
}
}
}
现在您当然可以在每个 sum agg 上添加 term filter 来过滤每个 sum 聚合器的总和。
我需要使用 script field.
获取 Kibana 中字段的总值例如)如果 id 字段的值类似于 1、2、3、4、5
我正在寻找 sum
id 的所有值,我希望输出为 15。
我需要在得到每个字段的总和后实现下面的公式。
lifetime=a-b-c-(d-e-f)*g
这里a,b,c,d,e,f,g都是各个字段值的总和。
更多信息请参考我提出的question
您可以在 scripted fields
:
doc['id'].value
因此,您可以使用 sum
聚合来获取 Kibana
中的总值。
这个SO可能会派上用场!
编辑
如果您尝试使用 Elasticsearch
执行此操作,您可以在请求正文中执行类似的操作:
"aggs":{
"total":{
"sum":{
"script":"doc['id'].value"
}
}
}
你可以跟进这个ref, but then if you're using painless
make sure you do include it within lang
.
你当然可以使用 sum 聚合来得到 id 的总和,但是为了进一步等同你的公式,你可以看看 pipeline aggregations 来使用 sum 值进行进一步的计算。
看看 bucket script aggregation,使用正确的存储桶路径求和聚合器,您可以实现您的解决方案。
示例文档
{
"a":100,
"b":200,
"c":400,
"d":600
}
查询
{
"size": 0,
"aggs": {
"result": {
"terms": {"script":"'nice to have it here'"},
"aggs": {
"suma": {
"sum": {
"field": "a"
}
},
"sumb": {
"sum": {
"field": "b"
}
},
"sumc": {
"sum": {
"field": "c"
}
},
"equation": {
"bucket_script": {
"buckets_path": {
"suma": "suma",
"sumb": "sumb",
"sumc" : "sumc"
},
"script": "suma + sumb + 2*sumc"
}
}
}
}
}
}
现在您当然可以在每个 sum agg 上添加 term filter 来过滤每个 sum 聚合器的总和。