elasticsearch如何聚合先前计算的字段

时间:2019-11-06 19:01:14

标签: elasticsearch elasticsearch-dsl

我可能不是在问正确的问题。所以这就是我所拥有的。

收入数据索引和成本数据索引

我正在收集这样的收入数据

        "revenue": {
          "filter": {
            "term": {
              "_index": "sales*"
            }
          },
          "aggs": {
            "amount": {
              "sum": {
                "field": "amount",
                "missing": 0.0
              }
            }
          }
        },

并汇总这样的费用数据

        "cost": {
          "filter": {
            "term": {
              "_index": "leads*"
            }
          },
          "aggs": {
            "amount": {
              "sum": {
                "field": "amount",
                "missing": 0.0
              }
            }
          }
        },

我要做的是计算净收入。

revenue - cost

但是由于它们的索引不同,所以我尝试做一个脚本,我在考虑如何告诉它如果一个索引中的金额为正,而另一个索引中的金额为负?

        "net_revenue": {
          "sum": {
            "script": "(if (doc._index like 'sales*') doc.amount else -doc.amount)"
          }
        }

我只是在这里吐痰,但是可以提供任何帮助。

0 个答案:

没有答案