栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ES条件分页查询与不分页处理

ES条件分页查询与不分页处理

分页查询:

if (item.getItem().getEndDate() != null) {
    item.getItem().setEndDate(item.getItem().getEndDate().plusDays(1));
}

Pageable pageable = PageRequest.of(item.getPageNo() - 1, item.getPageSize());
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
DrugManageQueryDto searchItem = item.getItem();
if(!StringUtils.isEmpty(searchItem.getWmsCode())) {
    boolQueryBuilder.must(QueryBuilders.matchPhraseQuery("wmsCode", searchItem.getWmsCode()));
}

if(!StringUtils.isEmpty(searchItem.getMaterielCode())) {
    boolQueryBuilder.must(QueryBuilders.matchPhraseQuery("materielCode", searchItem.getMaterielCode()));
}

if(searchItem.getStartDate() != null) {
    long startDate = searchItem.getStartDate().atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();
    boolQueryBuilder.must(rangeQuery("createDate").gte(startDate));
}

if(searchItem.getEndDate() != null) {
    long endDate = searchItem.getEndDate().atStartOfDay().toInstant(ZoneOffset.of("+8")).toEpochMilli();
    boolQueryBuilder.must(rangeQuery("createDate").lte(endDate));
}
nativeSearchQueryBuilder.withQuery(boolQueryBuilder).withSort(SortBuilders.fieldSort("createDate").order(SortOrder.DESC));
SearchQuery searchQuery = nativeSearchQueryBuilder.withPageable(pageable).build();
Page search = stockOrderPickDetailRepository.search(searchQuery);
PageInfos result;
if(search.getTotalElements() > 0) {
    result = new PageInfos(item.getPageNo(), item.getPageSize(), search.getTotalElements(), search.getTotalPages(), search.getContent());
} else {
    result = new PageInfos(item.getPageNo(), item.getPageSize(), 0, 0, new ArrayList());
}
return result;

不分页查询条件下所有的数据:

List result = new ArrayList<>();
Criteria criteria = new Criteria("epc").is(epc);
CriteriaQuery criteriaQuery = new CriteriaQuery(criteria);
CloseableIterator stockDrugCodes = elasticsearchTemplate.stream(criteriaQuery, StockDrugCodeEs.class);

while (stockDrugCodes.hasNext()) {
    result.add(stockDrugCodes.next());
}
return result;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682160.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号