List of usage examples for org.springframework.data.solr.core.query.result SimpleFacetFieldEntry SimpleFacetFieldEntry
public SimpleFacetFieldEntry(Field field, String value, long count)
From source file:org.springframework.data.solr.core.ResultHelper.java
static Map<Field, Page<FacetFieldEntry>> convertFacetQueryResponseToFacetPageMap(FacetQuery query, QueryResponse response) {//from w w w .j av a2 s .c o m Assert.notNull(query, "Cannot convert response for 'null', query"); if (!hasFacets(query, response)) { return Collections.emptyMap(); } Map<Field, Page<FacetFieldEntry>> facetResult = new HashMap<Field, Page<FacetFieldEntry>>(); if (CollectionUtils.isNotEmpty(response.getFacetFields())) { int initalPageSize = query.getFacetOptions().getPageable().getPageSize(); for (FacetField facetField : response.getFacetFields()) { if (facetField != null && StringUtils.hasText(facetField.getName())) { Field field = new SimpleField(facetField.getName()); if (CollectionUtils.isNotEmpty(facetField.getValues())) { List<FacetFieldEntry> pageEntries = new ArrayList<FacetFieldEntry>(initalPageSize); for (Count count : facetField.getValues()) { if (count != null) { pageEntries .add(new SimpleFacetFieldEntry(field, count.getName(), count.getCount())); } } facetResult.put(field, new SolrResultPage<FacetFieldEntry>(pageEntries, query.getFacetOptions().getPageable(), facetField.getValueCount(), null)); } else { facetResult.put(field, new SolrResultPage<FacetFieldEntry>(Collections.<FacetFieldEntry>emptyList(), query.getFacetOptions().getPageable(), 0, null)); } } } } return facetResult; }