Отдельный эластичный запрос клиента отдыха высокого уровня

Как использовать High Level Rest Client для поиска документов по уникальному значению. В документации говорится о Aggregation framework для поиска различных documents по field. Но я не смог найти ни одного примера использования High Level Rest Client. Как я могу получить разные documents по field.

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
                .must(QueryBuilders.matchQuery("Field1", "Value1"))
searchSourceBuilder.query(boolQueryBuilder);

searchSourceBuilder.aggregation(????)

Данные

{
    ..
    ..

      "Field1" : "Value1",
      "Field2" : "Value2"
    },
    {
      "Field1" : "Value1",
      "Field2" : "Value21"
    }
}

Ожидаемый результат (любой документ с «Поле1»: «Значение1»)

{
    ..
    ..

      "Field1" : "Value1",
      "Field2" : "Value2"
    }
}

Запрос эластичного поиска для различных вложенных значений

Эластичное агрегирование

Код ниже дает тот же результат:

   AggregationBuilder termAggregationBuilder = AggregationBuilders
                .terms("someName")
                .field("Field1");
   AggregationBuilder topHitsAggregationBuilder = AggregationBuilders
                .topHits("someOtherName")
                .fetchSource(includeFields, excludeFields);
   searchSourceBuilder.aggregation(termAggregationBuilder.subAggregation(topHitsAggregationBuilder));

person java_dude    schedule 25.11.2019    source источник
comment
Можете ли вы добавить образцы документов и ожидаемый результат, чтобы сделать вопрос более ясным?   -  person Nishant    schedule 25.11.2019
comment
@NishantSaini Добавлена ​​ссылка   -  person java_dude    schedule 25.11.2019
comment
Вам нужно использовать TermsAggregationBuilder   -  person Nishant    schedule 25.11.2019
comment
@NishantSaini Не могли бы вы рассказать, как его использовать. Я пробовал использовать TerminalAggregationBuilder и TopHits.   -  person java_dude    schedule 27.11.2019