1. Count计算
在项目中,count也算是一个比较常用的方法。之前项目中有需要用到,都是基于查询所有的方法,直接取total的值返回。最近发现,其实Elasticsearch单独封装了一个CountRequest类来获取数量。代码如下:
/**
* 查询指定索引文档总数(可增加查询条件,如果为空,则查询所有)
*/
@Test
public void testCount() {
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
CountRequest countRequest = new CountRequest();
//构造查询条件
// searchSourceBuilder.query(QueryBuilders.termQuery("fieldName", 1));
countRequest.indices("indexName").source(searchSourceBuilder);
CountResponse countResponse = null;
try {
countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);
return countResponse.getCount();
} catch (IOException e) {
log.error("[EsClientConfig.countDocumentSize][error][fail to count document size,param is {}]", countRequest);
}
return 0;
log.info("[document size is {}, indexName is {}]", size, indexName);
}