当前位置:   article > 正文

es java 聚合查询_java es聚合 termsquery中key不区分大小写

java es聚合 termsquery中key不区分大小写
  1. BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
    for (String key : filter.keySet()) {
        if ("rootOrderNo".equals(key)) {
            boolQueryBuilder.must(QueryBuilders.termQuery("rootOrderNo.keyword", filter.get(key).toString()));
            continue;
        }
        if ("path".equals(key)) {
            boolQueryBuilder.must(QueryBuilders.termQuery("path", filter.get(key).toString()));
            continue;
        }
        if ("orderTypes".equals(key)) {
            JSONArray array = JSONArray.parseArray(filter.get(key).toString());
            List<Integer> orderTypes = JSONObject.parseArray(array.toJSONString(), Integer.class);
            boolQueryBuilder.must(QueryBuilders.termsQuery("orderType", orderTypes));
            continue;
        }
        if ("orderNos".equals(key)) {
            boolQueryBuilder.must(QueryBuilders.termsQuery("orderNo.keyword", (List<String>) filter.get(key)));
            continue;
        }
        boolQueryBuilder.must(QueryBuilders.termQuery("deleteFlag", false));
    }
    //aggregation 聚合查询字段amount
    SumAggregationBuilder aggregation = AggregationBuilders.sum("amount").field("amount");
    //aggregation 聚合查询字段transactionAmount
    SumAggregationBuilder aggregation1 = AggregationBuilders.sum("transactionAmount").field("transactionAmount");
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(boolQueryBuilder).explain(true).aggregation(aggregation).aggregation(aggregation1);
    SearchRequest searchRequest = new SearchRequest(ORDER_INDEX);
    searchRequest.source(searchSourceBuilder);
    SearchResponse response = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    ParsedSum parsedSum = response.getAggregations().get("amount");
    ParsedSum tParsedSum = response.getAggregations().get("transactionAmount");
    Map<String, Object> map = new HashMap<>();
    map.put("amount", parsedSum.getValue());
    map.put("transactionAmount", tParsedSum.getValue());
    return Result.getInstance(map);
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号