一.范围查询,分组统计
将语句转为java客户端查询语句(RestHighLevelClient)
SearchRequest searchRequest = new SearchRequest ( indices) ;
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder ( ) ;
sourceBuilder. size ( 0 ) ;
BoolQueryBuilder boolQueryBuilder = QueryBuilders. boolQuery ( ) ;
boolQueryBuilder. filter ( QueryBuilders. rangeQuery ( "date" ) . gt ( DateUtil. strToDate ( fromDate) ) . lte ( DateUtil. strToDate ( toDate) ) ) ;
sourceBuilder. query ( boolQueryBuilder) ;
sourceBuilder. aggregation (
AggregationBuilders. terms ( "group_by_lineName" ) . field ( "lineName" ) . size ( 100 )
. subAggregation ( AggregationBuilders. avg ( "avg_eta" ) . field ( "eta" ) )
. subAggregation ( AggregationBuilders. avg ( "avg_uoc" ) . field ( "uoc" ) )
. subAggregation ( AggregationBuilders. avg ( "avg_isc" ) . field ( "isc" ) )
. subAggregation ( AggregationBuilders. avg ( "avg_ff" ) . field ( "ff" ) )
. subAggregation ( AggregationBuilders. avg ( "avg_rser" ) . field ( "rser" ) )
. subAggregation ( AggregationBuilders. avg ( "avg_rshuntDfDr" ) . field ( "rshuntDfDr" ) )
) ;
searchRequest. types ( indices) . source ( sourceBuilder) ;
SearchResponse response = restHighLevelClient. search ( searchRequest, RequestOptions. DEFAULT) ;