#java #elasticsearch #aggregate
Вопрос:
Как создать запрос, подобный приведенному ниже, с помощью ElasticRestHighLevelClient:
Я не могу добавить эту часть в свой запрос.
"include": {
"partition": 0,
"num_partitions": 20
}
Вот что мне нужно:
GET /_search
{
"aggs": {
"expired_sessions": {
"terms": {
"field": "account_id",
"include": {
"partition": 0,
"num_partitions": 20
},
"size": 10000,
}
}
}
}
Вот мой java-код.
AggregationBuilder AggregationBuilder = AggregationBuilders
.terms("CONTACT_ID")
.field("CONTACT_ID")
.size(10000);
Ответ №1:
Это то, что вы ищете:
IncludeExclude includeExclude = new IncludeExclude(0, 20);
AggregationBuilder aggrBuilder = AggregationBuilders
.terms("expired_sessions")
.field("account_id")
.includeExclude(includeExclude)
.size(10000);
searchSourceBuilder.aggregation(aggregationBuilder);
Соответствующий JSON:
"aggregations":{
"expired_sessions":{
"terms":{
"field":"account_id",
"size":10000,
"include":{
"partition":0,
"num_partitions":20
}
}
}
}