最近使用了sde4,发现querybypage被废弃,查了下最新用法,记录一下
IndexCoordinates index= IndexCoordinates.of("xxxxxxx");
QueryBuilder qb = new BoolQueryBuilder()
.must(new TermQueryBuilder("xxxx.keyword", "value1"))
.must(new TermQueryBuilder("xxxxx.keyword", "value2"))
Query sq = new NativeSearchQueryBuilder()
.withPageable(pageable)
.withFilter(qb)
.build();
//org.springframework.data.domain.Pageable pageable - Come from front-end
SearchHits<HashMap> hits = template.search(sq, HashMap.class, index);
SearchPage<HashMap> pages = SearchHitSupport.searchPageFor(hits, sq.getPageable());
如果需要自定义返回值则使用map方法
Page<HashMap> page=pages.map(this::converHashMap);
private HashMap converHashMap(SearchHit<HashMap> hit) {
HashMap<String, Object> resultmap = new HashMap<>();
//.......
return resultmap ;
}