Во-первых, я немного новичок в ES / SK и, тем более, в аггригациях.
Вот моя структура аггов:
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). Первые два сценария работают, и я подозреваю, что просто не понимаю, как эти сценарии работают.