Elastic - группировка по двум полям

Подскажите пожалуйста, существует ли возможность сгруппировать данные по двум полям в elastic? Я пробовал так:

POST /index_name/_search?size=1
{
"aggs": {
"top_tags": {
  "terms": {
    "field": "UUID.keyword",
    "size": 300
  },
 "aggs": {
    "aggs_group": {
      "top_hits": {
        "_source": {
          "includes": ["UUID.keyword", "Name" ]
        },
        "size": 100
      }
    }
  }
}
}
}

Но этот вариант не подходит так как возвращает документы с одинаковыми названиями.

 "hits" : [
            {
              "_index" : "index_name",
              "_type" : "_doc",
              "_id" : "ZrWX5XkBn2kNP2wYL0gw",
              "_score" : 1.0,
              "_source" : {
                "Name" : "Name1"
              }
            },
            {
              "_index" : "index_name",
              "_type" : "_doc",
              "_id" : "slyU0HkBCTEcNR_DY8Yx",
              "_score" : 1.0,
              "_source" : {
                "Name" : "Name1"
              }
            },

Буду благодарен за любую помощь


Ответы (1 шт):

Автор решения: vhar

Посмотрите в сторону multi_terms К примеру, я группирую по трем полям так

{
    "aggs": {
        "tours": {
            "multi_terms": {
                "terms": [
                    {"field": "hotel_id"},
                    {"field": "tour_date_from"},
                    {"field": "tour_nights"}
                ]
            }
        }
    }
}
→ Ссылка