public List<SearchResultVO> listSearchResultVOs(int startIndex, int numberOfItems) { List<SearchResultVO> results = new ArrayList<>(numberOfItems); SPEQueryResponse response = searchServices.query(query.setStartRow(startIndex).setNumberOfRows(numberOfItems)); List<Record> records = response.getRecords(); Map<String, Map<String, List<String>>> highlights = response.getHighlights(); for (int i = 0; i < records.size(); i++) { RecordVO recordVO = voBuilder.build(records.get(i), VIEW_MODE.TABLE, sessionContext); SearchResultVO searchResultVO = new SearchResultVO(recordVO, highlights.get(recordVO.getId())); results.add(searchResultVO); cache.put(startIndex + i, searchResultVO); } return results; }