Есть запрос к базе Elasticsearch с 6 агрегациями. требуется для каждой первой агрегации а именно IP адрес вывести все данные из базы . То есть IP адрес источника для него все IP адрес, ICMP-request,ICMP.response, bytes_in , bytes_out. Предполагаю, что это будет Массив IP адресов а для него массив элементов отдельного класса(с нужными данными) . Каким образом обойти все агрегации для создания этих массивов 6 вложенных циклов делать не хочется. Может быть кто то знает как сделать это средствам Elasticsearch. Или как сделать обход всех данных по параметрам без средств Elasticsearch.
SearchResponse response = client.prepareSearch("packetbeat-*").setTypes("dns")
.setQuery(QueryBuilders.boolQuery()
.must(QueryBuilders.rangeQuery("@timestamp").gte("now-18d").lt("now-3d"))
.addAggregation(AggregationBuilders
.terms("client_ip")
.field("client_ip")
.subAggregation(AggregationBuilders.terms("ip").field("ip")
.subAggregation(AggregationBuilders.terms("icmp.request.type").field("icmp.request.type"))
.subAggregation(AggregationBuilders.terms("icmp.response.type").field("icmp.response.type"))
.subAggregation(AggregationBuilders.sum("bytes_in").field("bytes_in"))
.subAggregation(AggregationBuilders.sum("bytes_out").field("bytes_out"))))
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости