public static SearchResult getSearchResult(SolrDocument solrDocument, List<String> fields, Function<String, String> indexSupplier) { SearchResult searchResult = new SearchResult(); searchResult.setId((String) solrDocument.getFieldValue(Constants.GUID)); searchResult.setIndex(indexSupplier.apply((String) solrDocument.getFieldValue(Constants.SENSOR_TYPE))); Map<String, Object> docSource = toDocument(solrDocument).getDocument(); final Map<String, Object> source = new HashMap<>(); if (fields != null) { fields.forEach(field -> source.put(field, docSource.get(field))); } else { source.putAll(docSource); } searchResult.setSource(source); return searchResult; }
/** * 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; }
result.setSource(docParsed); result.setScore((float) Math.random()); result.setId(docParsed.getOrDefault(Constants.GUID, UUID.randomUUID()).toString()); response.add(result);