Запрос к Elasticsearch из Java-клиента

176
23 марта 2017, 19:19
"aggs": {
    "2": {
      "terms": {
        "field": "dns.question.type",
        "size": 1000,
        "order": {
          "_count": "desc"
        }

Не понимаю как добавить агрегацию к запросу Java API elasticsearch. Необходимо посчитать количество документов по каждому типу значений dns.question.type и вернуть их. то есть два поля:первое dns.question.type, второе количество документов этого типа.Пытаюсь вначале с помощью функции terms определить количество уникальных значений "dns.question.type" ,необходимо еще получить второе поле которое подсчитывает количество записей каждого типа "dns.question.type" :

    SearchResponse response = client.prepareSearch("packetbeat")
   .setQuery(QueryBuilders.rangeQuery("@timestamp").gte("now-12d").lt("now-10d"))
   .addAggregation(AggregationBuilders.terms("")

И как мне после изъять значения из response например в хэш мап.

Answer 1

Для первого результата

SearchHit[] hits = response.getHits().getHits();
Map<String, Object> result = hits[0].sourceAsMap();
Answer 2

Сам разобрался:

SearchResponse response = client.prepareSearch("packetbeat-2017.03.12")                           .setQuery(QueryBuilders.rangeQuery("@timestamp").gte("now-12d").lt("now-10d"))
               .addAggregation(AggregationBuilders
               .terms("type").field("dns.question.type").size(5))
               .execute().actionGet();
Map<String, Object> res=new HashMap<String, Object>();
Terms dns_question_types=response.getAggregations().get("type");
for (Terms.Bucket entry : dns_question_types.getBuckets()) {
        res.put(entry.getKeyAsString(),entry.getDocCount());
        }
READ ALSO
finally, нелинейность выполнения

finally, нелинейность выполнения

Что позволяет finally изменять нормальный поток управления внутри метода? Какой задействован механизм?

166
связать Java и Sql Server [требует правки]

связать Java и Sql Server [требует правки]

Нужна помощь, есть программа написанная на Java, которая должна отправлять запрос на другой компьютер на котором есть sql server и получать ответТак...

160
Оптимизация Java-кода

Оптимизация Java-кода

Необходимо оптимизировать ниже приведенный кусок кодаВ данный момент есть несколько условий, при выполнении которых изменяется видимость...

204
Как запустить одновременно два потока?

Как запустить одновременно два потока?

Как можно запустить одновременно два потока (не дожидаясь завершения одного из них) на Java?

293