java操作es查询数据总量
java操作es查询count
·
通过java查询es的数据总量返回数据接口
public long rangeCount(String indexName, String timeFileds, String vehicleidFields,
String startTime, String endTime, String[] includeFields,
String rangeName,String gte ,String lte) throws IOException {
Map m = new HashMap<>();
m.put("total", 0);
try {
// 设置索引名
CountRequest countRequest = new CountRequest(indexName);
// 构建查询
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
// 构建查询语句
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
// 条件查询 添加起始时间
queryBuilder.must(QueryBuilders.rangeQuery(timeFileds + ".keyword").from(startTime,true).to(endTime,true));
// 设置es查询条件
sourceBuilder.query(queryBuilder);
sourceBuilder.query(QueryBuilders.rangeQuery(rangeName).gte(gte).lte(lte));
countRequest.source(sourceBuilder);
CountResponse countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);
// 遍历查询结果
RestStatus status = countResponse.status(); // ES请求状态
if (status != RestStatus.OK) {
System.out.println("未查询出结果");
return 0;
}
System.out.println("====查询结果展示====");
long count = countResponse.getCount();
System.out.println("count = " + count);
return count;
}catch (Exception e){
logger.error("ES查询失败",e);
}
return 0;
}
返回值为long类型,在后面调用的时候,如果需要指定条件,可以设置,不需要则注释即可。
更多推荐
已为社区贡献2条内容
所有评论(0)