搜尋elasticSearch 分頁、過濾、源欄位過濾,忽略non-null
阿新 • • 發佈:2018-12-29
int page = request.getPage(); int size = request.getSize(); //建立查詢構建器 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); //新增源過濾 queryBuilder.withSourceFilter(new FetchSourceFilter(new String[]{"id","subTitle","skus"},null)); //分頁 queryBuilder.withPageable(PageRequest.of(page,size)); //過濾 queryBuilder.withQuery(QueryBuilders.matchQuery("all",request.getKey())); Page<Goods> result = goodsRepository.search(queryBuilder.build()); //解析分頁結果 long total = result.getTotalElements(); int totalPages = result.getTotalPages(); List<Goods> goodsList = result.getContent(); return new PageResult<>(total,Long.valueOf(totalPages+""),goodsList);
int page = request.getPage(); int size = request.getSize(); //建立查詢構建器 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); //新增源過濾 queryBuilder.withSourceFilter(new FetchSourceFilter(new String[]{"id","subTitle","skus"},null)); //分頁 queryBuilder.withPageable(PageRequest.of(page,size));//過濾 queryBuilder.withQuery(QueryBuilders.matchQuery("all",request.getKey())); Page<Goods> result = goodsRepository.search(queryBuilder.build()); //解析分頁結果 long total = result.getTotalElements(); int totalPages = result.getTotalPages(); List<Goods> goodsList = result.getContent(); return new PageResult<>(total,Long.valueOf(totalPages+""),goodsList);
Springboot 配置想頁面返回時,不要返回null值
jackson:
default-property-inclusion: non_null
server:
port: 8083
spring:
application:
name: search-service
data:
elasticsearch:
cluster-name: elasticsearch
cluster-nodes: 192.168.159.254:9300
jackson:
default-property-inclusion: non_null
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8761/eureka
instance:
lease-renewal-interval-in-seconds: 5 # 每隔5秒傳送一次心跳
lease-expiration-duration-in-seconds: 10 # 10秒不傳送就過期
prefer-ip-address: true
ip-address: 127.0.0.1
instance-id: ${spring.application.name}:${server.port}