Elasticsearch:从其他聚合指标计算聚合指标

时间:2015-03-09 23:40:08

标签: elasticsearch aggregate metrics

Elasticsearch允许您根据文档中命中的字段计算存储桶上的指标。但是,如果我想从聚合上的其他指标计算指标,该怎么办?

例如,我在Elasticsearch中存储广告活动的数据。我按日期汇总文档,并添加daily_spenddaily_clicks指标(通过总结每个spend存储桶中文档的clicksday指标。现在,我想添加cpm指标,该指标是根据daily_spenddaily_clicks指标计算得出的。我该怎么做?

这是我的疑问:

{
    "query": {
        "filtered": {
            "filter": {
                "term": {
                    "campaign_id": 1234
                }
            }
        }
    },
    "aggs": {
        "day": {
            "terms": {
                "field": "day"
            },
            "aggs": {
                "daily_spend": {
                    "sum": {
                        "field": "spend"
                    }
                },
                "daily_clicks": {
                    "sum": {
                        "field": "clicks"
                    }
                },
                "cpc": {
                    //daily_spend/daily_clicks
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

无法从其他两个聚合中提取数据并对其进行其他操作。

最好的办法是,在从查询中检索数据后,对daily_spenddaily_clicks聚合的值进行除法运算。