一、只分组查询 groupBy
根据 id group by
SearchRequestBuilder searchRequestBuilder = transportClient.prepareSearch("index").setTypes("type");
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("group_id").field("id");
searchRequestBuilder.addAggregation(termsAggregationBuilder);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
Terms terms = searchResponse.getAggregations().get("group_id");
for (Terms.Bucket bucket : terms.getBuckets()) {
bucket.getKey();
bucket.getDocCount();
}
二、只 sum
SearchRequestBuilder searchRequestBuilder = transportClient.prepareSearch("index").setTypes("type");
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.sum("sum_price").field("price");
searchRequestBuilder.addAggregation(termsAggregationBuilder);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
Sum sum = searchResponse.getAggregations().get("sum_price");
sum.getName();
sum.getValue();
三、groupBy 后 sum
SearchRequestBuilder searchRequestBuilder = transportClient.prepareSearch("index").setTypes("type");
//group
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("group_id").field("id");
//sum
termsAggregationBuilder.subAggregation(AggregationBuilders.sum("sum_price").field("price"));
searchRequestBuilder.addAggregation(termsAggregationBuilder);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
Terms terms = searchResponse.getAggregations().get("group_id");
for (Terms.Bucket bucket : terms.getBuckets()) {
Sum sum = bucket.getAggregations().get("sum_price");
String name = sum.getName();
double value = sum.getValue();
}
四、max
MaxAggregationBuilder maxAggregationBuilder = AggregationBuilders.max(maxFieldName).field(maxFieldName);
searchRequestBuilder.addAggregation(maxAggregationBuilder);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
Max max = searchResponse.getAggregations().get(maxFieldName);
max.getValue()
五、save all
BulkRequestBuilder bulkRequestBuilder = transportClient.prepareBulk();
for (T t : list) {
String jsonStr = JSON.toJSONString(t);
IndexRequestBuilder indexRequestBuilder = transportClient.prepareIndex(index, type).setSource(jsonStr);
bulkRequestBuilder.add(indexRequestBuilder);
}
BulkResponse bulkItemResponses = bulkRequestBuilder.get();
版权声明:本文为weixin_40467684原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。