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;
 }