List of usage examples for com.amazonaws.services.cloudsearchdomain.model SearchResult getHits
public Hits getHits()
The documents that match the search criteria.
From source file:com.clicktravel.infrastructure.persistence.aws.cloudsearch.CloudSearchEngine.java
License:Apache License
@Override public <T extends Document> DocumentSearchResponse<T> search(final Query query, final Integer start, final Integer size, final Class<T> documentClass, final SearchOptions options) { if (options == null) { throw new IllegalArgumentException("SearchOptions cannot be null"); }//from www . j a v a 2 s . co m try { final DocumentConfiguration documentConfiguration = getDocumentConfiguration(documentClass); final SearchRequest searchRequest = getSearchRequest(query); searchRequest.setStart((long) start); searchRequest.setSize((long) size); if (!options.getExpressions().isEmpty()) { searchRequest.setExpr(new JSONObject(options.getExpressions()).toString()); } if (options.getSortOrder() != SortOrder.DEFAULT) { final StringBuilder sort = new StringBuilder(); String direction = null; int count = 0; for (final SortingOption sortingOption : options.getSortOrder().sortingOptions()) { count++; sort.append(sortingOption.key() + " "); switch (sortingOption.direction()) { case ASCENDING: default: direction = "asc"; break; case DESCENDING: direction = "desc"; break; } sort.append(direction); if (count < options.getSortOrder().sortingOptions().size()) { sort.append(", "); } } searchRequest.setSort(sort.toString()); } final String searchDomain = documentConfigurationHolder.schemaName() + "-" + documentConfiguration.namespace(); final SearchResult searchResult = getSearchServiceClient(searchDomain).search(searchRequest); final List<T> documents = new ArrayList<>(); for (final Hit hit : searchResult.getHits().getHit()) { try { documents.add(getDocument(hit, documentClass, documentConfiguration.properties())); } catch (final Exception e) { throw new IllegalStateException("Could not create Document from CloudSearch response: " + hit, e); } } final long totalResults = searchResult.getHits().getFound(); final String cursor = searchResult.getHits().getCursor(); return new DocumentSearchResponse<T>((int) totalResults, cursor, documents); } catch (final AmazonServiceException e) { throw new PersistenceResourceFailureException("Unable to perform CloudSearch query", e); } }