/** * Build a group response. * @param groupRequest The original group request. * @param response The search response. * @return A group response. */ protected GroupResponse buildGroupResponse( GroupRequest groupRequest, QueryResponse response) { String groupNames = groupRequest.getGroups().stream().map(Group::getField).collect( Collectors.joining(",")); List<PivotField> pivotFields = response.getFacetPivot().get(groupNames); GroupResponse groupResponse = new GroupResponse(); groupResponse.setGroupedBy(groupRequest.getGroups().get(0).getField()); groupResponse.setGroupResults(getGroupResults(groupRequest, 0, pivotFields)); return groupResponse; }
static Map<org.springframework.data.solr.core.query.PivotField, List<FacetPivotFieldEntry>> convertFacetQueryResponseToFacetPivotMap( FacetQuery query, QueryResponse response) { Map<org.springframework.data.solr.core.query.PivotField, List<FacetPivotFieldEntry>> facetResult = new LinkedHashMap<>(); NamedList<List<PivotField>> facetPivot = response.getFacetPivot(); if (facetPivot != null && facetPivot.size() > 0) { for (int i = 0; i < facetPivot.size(); i++) { String name = facetPivot.getName(i); List<PivotField> pivotResult = facetPivot.get(name); facetResult.put(new SimplePivotField(name), convertPivotResult(pivotResult)); } } return facetResult; }
if(response.getFacetPivot()!=null) { Spliterators.spliteratorUnknownSize(response.getFacetPivot().iterator(), Spliterator.ORDERED), false); pivotFacets.forEach(pivotFacet -> {
public ArrayList<ServerDetail> getList(SolrServer realTimeThoth) throws SolrServerException { ArrayList<ServerDetail> serverDetails = new ArrayList<ServerDetail>(); // Using HierarchicalFaceting to fetch server details .http://wiki.apache.org/solr/HierarchicalFaceting QueryResponse qr = realTimeThoth.query(new SolrQuery("*:*").addFacetPivotField(FACET_PIVOT_FIELDS).setRows(0).setFacetLimit(FACET_LIMIT)); NamedList<List<PivotField>> pivots = qr.getFacetPivot(); System.out.println("Found " + pivots.get(FACET_PIVOT_FIELDS).size()+" servers to monitor. Fetching information for these servers. Please wait"); for (PivotField pivot: pivots.get(FACET_PIVOT_FIELDS)){ String hostname = (String) pivot.getValue(); for (PivotField pf: pivot.getPivot()){ String coreName = (String) pf.getValue(); ServerDetail detail = fetchServerDetails(hostname,coreName, realTimeThoth); if (detail != null) serverDetails.add(detail); } } return serverDetails; }