Elasticsearch — поле запроса против агрегации

Я изучаю простоту запроса и агрегирования данных с помощью elasticsearch. Но я не могу свести и агрегировать данные в одном запросе, как показано ниже:

С учетом данных:

введите здесь описание изображения

Есть ли способ запросить приведенный ниже результат, который сводит и агрегирует значение, как показано ниже:

введите здесь описание изображения

Требуемый результат:

{  
   {  
      "A":a1,
      "B":b1,
      "Value":3
   },
   {  
      "A":a1,
      "B":b2,
      "Value":3
   },
   {  
      "A":a2,
      "B":b2,
      "Value":4
   },
   {  
      "A":a1,
      "B":b3,
      "Value":11
   }
}

person Gowtham    schedule 14.11.2018    source источник


Ответы (1)


Да, вы можете вложить две агрегации terms для A и B, вот так, и вы получите именно те результаты, которые ожидаете:

{
  "size": 0,
  "aggs": {
    "A": {
      "terms": {
        "field": "A"
      },
      "aggs": {
        "B": {
          "terms": {
            "field": "B"
          },
          "aggs": {
            "value_sum": {
              "sum": {
                "field": "Value1"
              }
            }
          }
        }
      }
    }
  }
}
person Val    schedule 14.11.2018
comment
Спасибо Вал. Это сработало точно. Просто нужно было добавить метку к сумме. - person Gowtham; 19.11.2018