标签:province code 聚合 AggregationBuilders 查询 field provinceCode QueryBuilders es
@Autowired
@Qualifier("restHighLevelClientX")
private RestHighLevelClient restClient;
public List<DataGroupBasicDataTopProvincenTableResponse> queryCustomerNum(DataViewRequest dataViewRequest){
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("",""))
.must(QueryBuilders.rangeQuery("").gte("").lte(""))
.must(QueryBuilders.wildcardQuery("",""))
.must(QueryBuilders.termQuery("",""))
.must(QueryBuilders.boolQuery())
.should(QueryBuilders.matchQuery("",""))
.should(QueryBuilders.fuzzyQuery("",""));
TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("provinceCode").field("province_code");//分组统计
// AggregationBuilders.count("provinceCode").field("province_code");
// AggregationBuilders.cardinality("provinceCode").field("province_code");//去重
// AggregationBuilders.terms("provinceCode").field("province_code");
// AggregationBuilders.max("provinceCode").field("province_code");
// AggregationBuilders.min("provinceCode").field("province_code");
// AggregationBuilders.avg("provinceCode").field("province_code");
searchSourceBuilder.query(boolQueryBuilder);
searchSourceBuilder.aggregation(termsAggregationBuilder);
SearchRequest searchRequest = new SearchRequest("索引名称");
searchRequest.types("类型");
searchRequest.source(searchSourceBuilder);
try {
// call es
SearchResponse searchResponse = restClient.search(searchRequest, ElasticSearchClientFactory.getCommonOptions());
Terms terms = searchResponse.getAggregations().get("provinceCode");
long totalHits = searchResponse.getHits().getTotalHits();
for (int i=0;i<terms.getBuckets().size();i++){
String key = terms.getBuckets().get(i).getKey().toString();
long docCount = terms.getBuckets().get(i).getDocCount();
DataGroupBasicDataTopProvincenTableResponse dataGroupBasicDataTopProvincenTableResponse = new DataGroupBasicDataTopProvincenTableResponse();
dataGroupBasicDataTopProvincenTableResponse.setProvince(key);
dataGroupBasicDataTopProvincenTableResponse.setUv(docCount);
dataGroupBasicDataTopProvincenTableResponse.setProportion(MallDataCalculationUtil.getDivideValueForPercent(docCount, totalHits).longValue());
dataPageMapVOS.add(dataGroupBasicDataTopProvincenTableResponse);
}
} catch (IOException e) {
e.printStackTrace();
}
return dataPageMapVOS;
}
标签:province,code,聚合,AggregationBuilders,查询,field,provinceCode,QueryBuilders,es 来源: https://blog.csdn.net/mingji811920/article/details/120826383
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。