2016-04-28 62 views
0

我正在尝试使用AEM的querybuilder API来执行通用搜索。我目前遇到的问题是使用querybuilder创建分页。在使用SearchResult的AEM中使用ResultPage类到getNextPage()。我得到结果 [email protected]。我将如何将其转换为URL?我已经在querybuilder中使用了偏移量和结果总数,但是找不到更多的文档让我朝正确的方向发展。AEM查询生成器类返回

queryBuilder=resource.getResourceResolver().adaptTo(QueryBuilder.class); 
//creating query based on the Query Description 
Query query=queryBuilder.createQuery(PredicateGroup.create(map),session); 
//Getting and storing the Results 
List Pages1 = searchRes.getResultPages(); 
ResultPage nextpage = searchRes.getNextPage(); 
ResultPage lastpage = searchRes.getPreviousPage(); 
for (Hit hit:searchRes.getHits()){ 

String path1=hit.getPath(); 
String title1=hit.getTitle(); 
String excerpt1=hit.getExcerpt(); 

回答

1

你不能。 ResultPage对象包含关于您从QueryBuilder获得的搜索结果的信息。您可以使用这些信息构建自己的分页和搜索结果页面。 由于SearchResult对象仅包含当前页面的结果,因此您可以使用ResultPage轻松获取索引,并根据您用于查询的设置从QueryBuilder请求的所有其他页面的起始位置,例如:

query.setStart(start); 
query.setHitsPerPage(hitsPerPage); 

但是有到前端没有关系。

+0

感谢您的解释,奥利弗。我将如何去设置它必须与jQuery的分页?或者querybuilder是否支持jsp? – alstonan25

+0

也可以使用Search.Result类,它也有getnextpage()方法以及获取URL的方法。 – alstonan25