@Override public SearchResponse search(SearchRequest searchRequest) throws RestException { try { if (searchRequest.getIndices() == null || searchRequest.getIndices().isEmpty()) { List<String> indices = getDefaultIndices(); // metaalerts should be included by default in search requests indices.add(METAALERT_TYPE); searchRequest.setIndices(indices); } if (searchRequest.getFacetFields() != null && searchRequest.getFacetFields().isEmpty()) { searchRequest.setFacetFields(getDefaultFacetFields()); } return dao.search(searchRequest); } catch(InvalidSearchException ise) { throw new RestException(ise.getMessage(), ise); } }
if (searchRequest.getFacetFields() != null) { List<String> facetFields = searchRequest.getFacetFields(); Map<String, FieldType> commonColumnMetadata; try {
protected SearchResponse buildSearchResponse( SearchRequest searchRequest, QueryResponse solrResponse) { SearchResponse searchResponse = new SearchResponse(); SolrDocumentList solrDocumentList = solrResponse.getResults(); searchResponse.setTotal(solrDocumentList.getNumFound()); // search hits --> search results List<SearchResult> results = solrDocumentList.stream() .map(solrDocument -> SolrUtilities.getSearchResult(solrDocument, searchRequest.getFields(), accessConfig.getIndexSupplier())) .collect(Collectors.toList()); searchResponse.setResults(results); // handle facet fields List<String> facetFields = searchRequest.getFacetFields(); if (facetFields != null) { searchResponse.setFacetCounts(getFacetCounts(facetFields, solrResponse)); } if (LOG.isDebugEnabled()) { String response; try { response = JSONUtils.INSTANCE.toJSON(searchResponse, false); } catch (JsonProcessingException e) { response = e.getMessage(); } LOG.debug("Built search response; response={}", response); } return searchResponse; }
ret.setResults(finalResp); Map<String, Map<String, Long>> facetCounts = new HashMap<>(); List<String> facetFields = searchRequest.getFacetFields(); if (facetFields != null) { for (String facet: facetFields) {
protected SolrQuery buildSearchRequest( SearchRequest searchRequest, String fieldList) throws IOException, SolrServerException { SolrQuery query = new SolrQuery() .setStart(searchRequest.getFrom()) .setRows(searchRequest.getSize()) .setQuery(searchRequest.getQuery()); // handle sort fields for (SortField sortField : searchRequest.getSort()) { query.addSort(sortField.getField(), getSolrSortOrder(sortField.getSortOrder())); } // handle search fields List<String> fields = searchRequest.getFields(); if (fieldList == null) { fieldList = "*"; if (fields != null) { fieldList = StringUtils.join(fields, ","); } } query.set("fl", fieldList); //handle facet fields List<String> facetFields = searchRequest.getFacetFields(); if (facetFields != null) { facetFields.forEach(query::addFacetField); } query.set("collection", getCollections(searchRequest.getIndices())); return query; }
List<String> facetFields = searchRequest.getFacetFields();