JAVA中ES根据条件查询计数操作

NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
//获取查询条件
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        
boolQueryBuilder.must(QueryBuilders.termQuery("key1", value1));
boolQueryBuilder.must(QueryBuilders.termQuery("key2", value2));

queryBuilder.withQuery(boolQueryBuilder);
NativeSearchQuery searchQuery = queryBuilder.build();

//获取真实的索引name
String realIndexName = indexService.getRealIndexName("索引别名");
CountRequest countRequest = new CountRequest(realIndexName);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(searchQuery.getQuery());
countRequest.source(searchSourceBuilder);
CountResponse countResponse = null;
try {
    countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
    
}
long count = countResponse.getCount();

你可能感兴趣的:(java,elasticsearch,jvm)