【发布时间】:2020-03-14 22:07:04
【问题描述】:
首先,我对 ES / SK 有点陌生,对聚合更是如此。
这是我的 aggs 结构:
aggs: {
all_budgets: {
sum: {
field: :amount
}
},
all_forecasts: {
sum: {
field: :forecast_total
}
},
all_variance: {
sum: {
script: "doc['forecast_total'].value - doc['amount'].value"
}
},
all_variance_p: {
sum: {
script: "(doc['forecast_total'].value - doc['amount'].value) / doc['amount'].value"
}
}
}
我基本上是想得到我所有预算的总和,总支出,然后是超出/低于预算和相应的百分比。这是我的输出:
{
"all_forecasts": {
"doc_count": 2,
"value": 173604.0
},
"all_budgets": {
"doc_count": 2,
"value": 185437.0
},
"all_variance_p": {
"doc_count": 2,
"value": "0.33694326595832774"
},
"all_variance": {
"doc_count": 2,
"value": -11833.0
}
}
“0.33694326595832774”值错误 - 应为“-0.06408106257”(即 -11833.0 / 185437.0)。前两个脚本有效,我怀疑我只是不明白这些脚本是如何工作的。
【问题讨论】:
-
请添加映射和数据