示例代码

/*         
 *  通过multiFieldQuery() API。         
 *  请求创建流程:MultiFieldSubQueryDetails List -> MultiFieldSubQuery -> MultiFieldQuery         
 *  现在多值查询支持多个子查询。         
 *           
 *  查询时必须提供的信息:         
 *  MultiFieldSubQueryDetails List: 查询指标下具体的度量(子类比)信息。例如只查询"speed"或者“direction”         
 *                                  里面可以指定聚合运算(Aggreagtor),值过滤(dpValue),斜率计算(rate),降采样(downsample)等。         
 *  Metric: 代表查询的数据指标,例如 "wind"         
 *  Time Range: Start Time and End Time         
 *         
 *  可选信息:         
 *  Tags: 过滤时间的信息         
 *  Limit/Offset: 分页处理         
 */        
 // 创建要查询 fields 的信息        
 MultiFieldSubQueryDetails speedFieldDetails = MultiFieldSubQueryDetails                
     .field("speed").aggregator(Aggregator.SUM).downsample("2s-sum").build();        
 MultiFieldSubQueryDetails levelFieldDetails = MultiFieldSubQueryDetails                
     .field("level").aggregator(Aggregator.AVG).downsample("2s-avg").build();        
 MultiFieldSubQueryDetails tempFieldDetails = MultiFieldSubQueryDetails                
     .field("temperature").aggregator(Aggregator.COUNT).downsample("2s-count").build();        
 MultiFieldSubQueryDetails allFieldsDetails1 = MultiFieldSubQueryDetails                
     .field("*").aggregator(Aggregator.MAX).downsample("2s-max").alias("max_").build();        
 MultiFieldSubQueryDetails allFieldsDetails2 = MultiFieldSubQueryDetails                
     .field("*").aggregator(Aggregator.MIN).downsample("2s-min").alias("min_").build();        

 List<MultiFieldSubQueryDetails> subQueryDetails = new LinkedList<>();        
 subQueryDetails.add(speedFieldDetails);        
 subQueryDetails.add(levelFieldDetails);        
 subQueryDetails.add(tempFieldDetails);        
 subQueryDetails.add(allFieldsDetails1);        
 subQueryDetails.add(allFieldsDetails2);        

 // 创建多值模型子查询        
 MultiFieldSubQuery subQuery = MultiFieldSubQuery.metric(metric).fieldsInfo(subQueryDetails)                
     .filter(Filter.filter(FilterType.LiteralOr, "district", "Yuhang|Xiacheng|Xihu", true).build())                
     .build();        
 // 创建多值模型查询        
 MultiFieldQuery query = MultiFieldQuery.start(1542772000L).end(1542772020L).msResolution(false)                
     .sub(subQuery).build();       
 List<MultiFieldQueryResult> results = tsdb.multiFieldQuery(query);