private IndexSearchResultIteratorCollection doSort(IndexSearchResultIteratorCollection results, List<SortParameter> params) throws JasDBStorageException { Set<String> requiredKeys = new HashSet<>(); for(SortParameter sortParam : params) { String paramField = sortParam.getField(); if(!results.getKeyNameMapper().isMapped(paramField)) { LOG.debug("Sorting field: {} not present in index results following keys present: {}", paramField, results.getKeyNameMapper()); requiredKeys.add(paramField); } } ensureSortingParams(results, requiredKeys); for(SortParameter sortParam : params) { String field = sortParam.getField(); if(results.getKeyNameMapper().isMapped(field)) { List<Key> sortedKeys = doMergeSort(results.getKeys(), sortParam.getField(), sortParam.getOrder(), results.getKeyNameMapper()); results = new IndexSearchResultIteratorImpl(sortedKeys, results.getKeyNameMapper()); } } return results; }