2016-04-28 63 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