1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
// This file is autogenerated, DO NOT EDIT
// aggregations/metrics/scripted-metric-aggregation.asciidoc:19
[source, python]
----
resp = client.search(
index="ledger",
size="0",
query={
"match_all": {}
},
aggs={
"profit": {
"scripted_metric": {
"init_script": "state.transactions = []",
"map_script": "state.transactions.add(doc.type.value == 'sale' ? doc.amount.value : -1 * doc.amount.value)",
"combine_script": "double profit = 0; for (t in state.transactions) { profit += t } return profit",
"reduce_script": "double profit = 0; for (a in states) { profit += a } return profit"
}
}
},
)
print(resp)
----
|