Как использовать 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));