use of com.topcom.yzswf.util.es.ESQueryBuilders in project topcom-cloud by 545314690.
the class EsFileServiceImpl method search.
@Override
public com.topcom.yzswf.util.Page search(FileQueryVO fileQueryVO) throws Exception {
String searchType = fileQueryVO.getSearchType();
if (StringUtils.isNotBlank(searchType)) {
if ("content".equals(searchType)) {
searchType = "attachment.content";
}
} else {
searchType = "filename";
}
PageRequest pageRequest = fileQueryVO.getPageRequest();
ESQueryBuilderConstructor constructor = new ESQueryBuilderConstructor();
QueryWord queryWord = fileQueryVO.getQueryWord();
if (queryWord != null) {
constructor.must(new ESQueryBuilders().queryString(searchType + ":" + queryWord.toQueryString()));
}
// 查询返回条数,最大 10000
constructor.setSize(pageRequest.getLimit());
// 分页查询条目起始位置, 默认0
constructor.setFrom(pageRequest.getLimit() * (pageRequest.getPage() - 1));
List<Order> orders = pageRequest.getOrders();
if (StringUtils.isNotBlank(fileQueryVO.getType())) {
constructor.must(new ESQueryBuilders().term("type", fileQueryVO.getType()));
}
if (StringUtils.isNotBlank(fileQueryVO.getSource())) {
constructor.must(new ESQueryBuilders().term("source", fileQueryVO.getSource()));
}
if (CollectionUtils.isNotEmpty(fileQueryVO.getFileTypes())) {
constructor.must(new ESQueryBuilders().terms("fileType", fileQueryVO.getFileTypes()));
}
if (StringUtils.isNotBlank(fileQueryVO.getAccidentType())) {
constructor.must(new ESQueryBuilders().term("accidentType", fileQueryVO.getAccidentType()));
}
DateParam dateParam = fileQueryVO.getDateParam();
if (dateParam != null) {
Date startDate = dateParam.startDate();
Date endDate = dateParam.endDate();
constructor.must(new ESQueryBuilders().range("uploadTime", startDate.getTime(), endDate.getTime()));
}
if (orders != null && orders.size() > 0) {
Order order = orders.get(0);
Sort.Direction direction = order.getDirection();
if (Sort.Direction.ASC.equals(direction)) {
// 排序
constructor.setAsc(order.getOrderBy());
} else {
// 排序
constructor.setDesc(order.getOrderBy());
}
}
//
com.topcom.yzswf.util.Page page = elasticSearchService.search(EsConf.INDEX, EsConf.TYPE, constructor);
return page;
}
Aggregations