问题:
表按照城市进行分组聚合后,返回固定十条数据?
try {
response11 = elasticsearchClient.search(s -> s
.index("bo_aspx")
.aggregations("ageGroup", a -> a
.terms(t -> t
.field("city.keyword")
//.size(100000)
)
, BoAspx.class);
} catch (IOException e) {
e.printStackTrace();
}
Aggregate aggregate = response11.aggregations().get("ageGroup");
StringTermsAggregate lterms = aggregate.sterms();
Buckets<StringTermsBucket> buckets = lterms.buckets();
int a = 0;
for (StringTermsBucket b : buckets.array()) {
System.out.println(b.key() + " : " + b.docCount());
a += b.docCount();
}
System.out.println("总数:"+a);
原因:
es聚合操作的size参数规定了最后返回的term个数(默认是10个),将size单独设置解决。代码注释部分放开即可
参考: