2015-03-09 4 views
1

Elasticsearch позволяет вычислять показатели в ведре из полей ударов в документе. Но что, если я хочу вычислить метрику из других показателей в агрегировании.Elasticsearch: метрика агрегации вычислений из других показателей агрегирования

Например, я храню данные о рекламных кампаниях в Elasticsearch. Я суммирую документы по дате и добавляю daily_spend и daily_clicks метрики (путем суммирования spend и clicks показателей по документам в каждом day ковше). Теперь я хочу добавить метку cpm, которая вычисляется из показателей daily_spend и daily_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 
       } 
      } 
     } 
    } 
} 

ответ

0

Существует не способ извлечения данных из двух других агрегатов и делать дополнительные операции над ними.

Лучше всего сделать это операцию деления на значение агрегатов daily_spend и daily_clicks после того, как вы получили данные из запроса.