out-println 2018-01-26 07:52 采纳率: 0%
浏览 6508
已结题

java 里面通过es查询不到数据。都要哭了。

如题。java代码如下

 public List<AvgPowerVo> getAvgPower(AvgPowerParam param) {
        logger.debug("get avg power start");
        List<AvgPowerVo> list = new ArrayList<>();
        SearchResponse response = null;
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        TermsAggregationBuilder orderAgg = AggregationBuilders.terms("order ").field("pkgts_date.keyword").order(Terms.Order.term(true));
        if (StringUtils.isNotEmpty(param.getVin())) {
            boolQueryBuilder.must(QueryBuilders.matchQuery("vin", param.getVin()));
        }
        int week = param.getWeek();
        Date start = DateUtil.getLastWeekStartTime(week);
        Date end = DateUtil.getLastWeekEndTime(week);
        if (week == 0) {
            start = DateUtil.getLastWeekStartTime(12);
        }
        boolQueryBuilder.must(QueryBuilders.rangeQuery("pkgts_date").gte(start).lte(end));
        SearchRequestBuilder requestBuilder = esClient.getClient()
                .prepareSearch(esAvgPowerIndex)
                .setTypes(esAvgPowerType)
                .addAggregation(orderAgg)
                .setQuery(boolQueryBuilder);
        response = requestBuilder.execute().actionGet();
        if (response != null) {
            SearchHits searchHits = response.getHits();
            SearchHit[] hits = searchHits.getHits();
            for (SearchHit hit : hits) {
                Map<String, Object> rs = hit.getSource();
                AvgPowerVo avgPowerVo = new AvgPowerVo();
                String date = (String) rs.get("pkgts_date");
                if (StringUtils.isNotEmpty(date)) {
                    date = date.substring(0, 10);
                }
                avgPowerVo.setPkgtsDate(DateUtil.formatToDate(date));
                avgPowerVo.setAvgConsumOnce((Double) rs.get("avg_consum_once"));
                avgPowerVo.setAvgConsumAdd((Double) rs.get("avg_consum_add"));
                list.add(avgPowerVo);
            }
        }
        return list;
    }

然后这个是java里面执行的查询语句

 {
  "query" : {
    "bool" : {
      "must" : [
        {
          "match" : {
            "vin" : {
              "query" : "LMGFE1G88D1022052",
              "operator" : "OR",
              "prefix_length" : 0,
              "max_expansions" : 50,
              "fuzzy_transpositions" : true,
              "lenient" : false,
              "zero_terms_query" : "NONE",
              "boost" : 1.0
            }
          }
        },
        {
          "range" : {
            "pkgts_date" : {
              "from" : "2017-11-02T16:00:00.000Z",
              "to" : "2018-01-26T15:59:59.999Z",
              "include_lower" : true,
              "include_upper" : true,
              "boost" : 1.0
            }
          }
        }
      ],
      "disable_coord" : false,
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  },
  "aggregations" : {
    "order " : {
      "terms" : {
        "field" : "pkgts_date.keyword",
        "size" : 10,
        "min_doc_count" : 1,
        "shard_min_doc_count" : 0,
        "show_term_doc_count_error" : false,
        "order" : {
          "_term" : "asc"
        }
      }
    }
  }
}

然后我把这个拿到chrome客户端去查询。能够查询出来。。。

 {
"query": {
"bool": {
"must": [
{
"range": {
"pkgts_time": {
"gte": "2017-11-02T16:00:00.000Z",
"lt": "2018-01-26T15:59:59.999Z"
}
}
}
,
{
"term": {
"vin.keyword": "LMGFE1G88D1022052"
}
}
],
"must_not": [ ],
"should": [ ]
}
},
"from": 0,
"size": 50,
"sort": [ ],
"aggs": { }
}

有大神来帮忙回答下吗。

  • 写回答

2条回答 默认 最新

  • cruise-peng 2020-05-27 09:35
    关注

    可是是分页的原因 ,默认分页的第一页的pageNum = 0

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题