Ведро фильтра в elasticsearch

#elasticsearch #kibana

Вопрос:

У меня есть наблюдатель, который фильтрует данные по 3 полям, я называю их уровнем 1, уровнем и уровнем 3:

 "aggs": {  "group_by_level_1": {  "terms": {  "field": "level1.keyword"  },  "aggs": {  "group_by_level_2": {  "terms": {  "field": "level2.keyword"  },  "aggs": {  "group_by_level_3": {  "terms": {  "field": "level3.keyword"  }  }  }  }  }  } }  

Он возвращает следующий результат:

 {  "aggregations": {  "group_by_level_1": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 70,  "group_by_level_2": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 47,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 46,  "key": "key_level_3_1"  }  ]  },  "key": "key_level_2_1"  },  {  "doc_count": 8,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 3,  "key": "key_level_3_2"  },  {  "doc_count": 2,  "key": "key_level_3_3"  }  ]  },  "key": "key_level_2_2"  },  {  "doc_count": 4,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 4,  "key": "key_level_3_5"  }  ]  },  "key": "key_level_2_3"  }  ]  },  "key": "key_level_1_1"  }  ]  }  } }  

Как мне получить значение ключа уровня 1, уровня 2 и 3, удовлетворяющее условию уровень 3 doc_count gt; 10?

Я пытался:

 "aggs": {  "group_by_level_3": {  "terms": {  "field": "level3.keyword",  "min_doc_count": 10  }  } }  

But this only helps me to hide the value of level 3, how can i get only bucket level 1, 2 that satisfy the condition level 3 gt; 10:

 {  "aggregations": {  "group_by_level_1": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 49,  "group_by_level_2": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 34,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  "buckets": [  {  "doc_count": 33,  "key": "key_level_3_1"  }  ]  },  "key": "key_level_2_1"  },  {  "doc_count": 4,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  **"buckets": []**  },  "key": "key_level_2_2"  },  {  "doc_count": 3,  "group_by_level_3": {  "doc_count_error_upper_bound": 0,  "sum_other_doc_count": 0,  **"buckets": []**  },  "key": "key_level_2_3"  }  ]  },  "key": "key_level_1_1"  }  ]  }  } }