@Autowired
JestClient jestClient;
SearchResult searchResult = jestClient.execute(search);
// 聚合分组
TermsAggregationBuilder groupby_attr = AggregationBuilders.terms("field_Agg").field("field");
// 仅显示每一组中第一个Document
TopHitsAggregationBuilder suBuilder = AggregationBuilders.topHits("sub_agg").size(1);
groupby_attr.subAggregation(suBuilder);
searchSourceBuilder.aggregation(groupby_attr);
//按照专辑id对搜索结果进行分组,并且从每组中取出一个
JsonArray listt = searchResult.getAggregations().getTopHitsAggregation("field_Agg").getJsonObject()
.getAsJsonArray("buckets");
List<Bean> vvList = new ArrayList<Bean>();
for (JsonElement jsonElement : listt) {
JsonObject ss = jsonElement.getAsJsonObject().getAsJsonObject("sub_agg").getAsJsonObject("hits")
.getAsJsonArray("hits").get(0).getAsJsonObject().getAsJsonObject("_source");
ESDO vv = new Gson().fromJson(ss, Bean.class);
vvList.add(vv);
}
FR:徐海涛(hunk xu)
QQ技术交流群:386476712