/** * Transforms a list of Elasticsearch SearchHits to a list of SearchResults * @param searchResponse An Elasticsearch SearchHit to be converted. * @return The list of SearchResults for the SearchHit */ protected static List<SearchResult> getSearchResults( org.elasticsearch.action.search.SearchResponse searchResponse) { return Arrays.stream(searchResponse.getHits().getHits()).map(searchHit -> { SearchResult searchResult = new SearchResult(); searchResult.setId(searchHit.getId()); searchResult.setSource(searchHit.getSource()); searchResult.setScore(searchHit.getScore()); searchResult.setIndex(searchHit.getIndex()); return searchResult; } ).collect(Collectors.toList()); } }
private SearchResult getSearchResult(SearchHit searchHit, List<String> fields) { SearchResult searchResult = new SearchResult(); searchResult.setId(searchHit.getId()); Map<String, Object> source; if (fields != null) { Map<String, Object> resultSourceAsMap = searchHit.getSourceAsMap(); source = new HashMap<>(); fields.forEach(field -> { source.put(field, resultSourceAsMap.get(field)); }); } else { source = searchHit.getSource(); } searchResult.setSource(source); searchResult.setScore(searchHit.getScore()); searchResult.setIndex(searchHit.getIndex()); return searchResult; }
SearchResult result = new SearchResult(); result.setSource(docParsed); result.setScore((float) Math.random()); result.setId(docParsed.getOrDefault(Constants.GUID, UUID.randomUUID()).toString()); response.add(result);