elasticsearchは重合後の2つのフィールドの相殺、加算、相乗、演算を実現します。
1512 ワード
一つの需要があります。sqlでの計算方法は:
esには集合cotとview_が必要です。countは後で演算します。長い間苦労しました。記録してください。 Only sibling pipeline aggregations are allowed at the top level は、最上階では兄弟パイプの集合のみが許可されている。つまり、重合は同じ桶だけで計算されます。 参考文献:https://www.elastic.co/guide/en/elasticsearch/painless/7.13/painless-bucket-script-agg-context.html
sum(cost) / 100 / sum(view_count) * 1000
平均千回の展示価格を集計して、コストは分けて保存します。esには集合cotとview_が必要です。countは後で演算します。長い間苦労しました。記録してください。
"aggs" => [
'total_cost_count' => [
'sum' => [
'field' => 'cost'
]
],
'total_view_count' => [
'sum' => [
'field' => 'view_count'
]
],
'(total_cost / total_view)' => [
'bucket_script' => [
'buckets_path' => [
'cost' => 'total_cost_count',
'view_count' => 'total_view_count',
],
'script' => [
'source' => "params.cost / params.unit / params.view_count * params.days",
'params' => [
'unit' => 100,
'days' => 1000,
]
]
]
]
],
デバッグ中にエラーメッセージを送信しました。