Elasticsearch 查詢學習


elasticsearch aggregation 聚合統計 

在項目中可以通過聚合統計數據,常用的平均值計算(avg),求和 (sum),數量統計(count)  ,最大值(max) 最小值(min)等 ,可以直接通過Aggregation得到計算結果

計算平均值 avg
GET company/user/_search { "aggs": { "maxname": { "avg": { "field": "age" } } } }


public void avg(){
AvgAggregationBuilder avgAggregationBuilder =AggregationBuilders.avg("avg").field("age");
SearchQuery searchQuery =new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchQuery("uid","1"))
.addAggregation(avgAggregationBuilder)
.build();
elasticsearchTemplate.query(searchQuery,searchResponse -> {
Avg avg =searchResponse.getAggregations().get("avg");
System.out.println(avg.getValue());
return null;
});
}

 

統計某一字段數量 avg
GET company/user/_search
{
  "aggs": {
    "maxname": {
      "value_count": {
        "field": "age"
      }
    }
  }
}

public void avg(){
ValueCountAggregationBuilder countAggregationBuilder =AggregationBuilders.count("count").field("age");
SearchQuery searchQuery =new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.matchQuery("uid","1"))
.addAggregation(countAggregationBuilder)
.build();
elasticsearchTemplate.query(searchQuery,searchResponse -> {
ValueCount count =searchResponse.getAggregations().get("count");
System.out.println(count.getValue());
return null;
});
}
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM