/**
* 分页查询 执行体
* @param clz 数据对应实体类
* @param page分页,排序,数据库,表 等属性
* @param queryBuilder 查询语句
* @return
*/
public static PageEntity pageSearcher(Class clz,PageEntity page,QueryBuilder queryBuilder){
ElasticSearchHandler elsHandler = new ElasticSearchHandler();//建立搜索连接
List list = new ArrayList();
String indexname = page.getDbName().getValue();//索引库
String type = page.getTableNameEnum().getValue();//索引表
String sort = page.getSort();//排序字段
String order = page.getOrder();//排序方式
Integer currentPageNo = page.getCurrentPageNo();//当前页码
Integer pageSize = page.getPageSize();//分页大小
SearchResponse response = elsHandler.searcher( queryBuilder, indexname, type, sort, order , currentPageNo, pageSize);
elsHandler.closeESClient();
SearchHits searchHits = response.getHits();
long total =searchHits.getTotalHits();
System.out.println("查询到记录数=" + searchHits.getTotalHits());
page.setTotalSize((int) total);
SearchHit[] hits = searchHits.getHits();
if(hits.length>0){
for(SearchHit hit:hits){
System.out.println("匹配度:"+hit.getScore());
String json = JsonUtil.toJsonString( hit.getSource());//map对象转成json
System.out.println("查询到记录:="+json);
T t = JsonUtil.parseObject(json,clz);//json转成对应对象
list.add(t);
}
}
page.setResult(list);
return page;
}