@Autowired
private RestHighLevelClient restHighLevelClient;
@Autowired
private CosCommonConfig cosCommonConfig;
public Integer getReadCountById(XfaceNoticeMessageListInquiryResponseSubDTO subDTO) {
// 构造查询器
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
boolQueryBuilder.filter(QueryBuilders.termsQuery("push_id", subDTO.getNoticeId()));
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolQueryBuilder);
sourceBuilder.fetchSource(new String[]{"push_id", "read_num", "etl_time"}, null);//指定获取字段
//设置超时时间
sourceBuilder.timeout(new TimeValue(30, TimeUnit.SECONDS));
//设置分页参数
sourceBuilder.from(0); // 第几页
sourceBuilder.size(1000); // 每页多少条数据
SearchRequest searchRequest = new SearchRequest(cosCommonConfig.getTftPushReadIndex())//"sit_tft_push_read_stat_index"
.source(sourceBuilder)
.searchType(SearchType.QUERY_THEN_FETCH);
//阅读量默认为0
Integer readCount = 0;
try {
logger.info("查询es数据库-开始,索引为:{},查询的pushID为:{}", cosCommonConfig.getTftPushReadIndex(), subDTO.getNoticeId());
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
// 封装查询结果
SearchHits termhts = searchResponse.getHits();
//如果查询结果不为空,则取阅读量
if (null != termhts && termhts.getHits().length > 0) {
SearchHit lastHitItem = termhts.getHits()[termhts.getHits().length - 1];
if (null != lastHitItem.getSourceAsMap()) {
readCount = (Integer.parseInt(lastHitItem.getSourceAsMap().get("read_num").toString()));
}
}
} catch (Exception e) {
logger.error(" getReadCountById 查询ES阅读量异常 - Exception异常:{}", e.getMessage());
}
return readCount;
}
es查询代码模板
于 2022-05-18 14:59:08 首次发布