diff --git a/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java b/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java index dd7c080aa8..2c82bd7f16 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java @@ -96,8 +96,8 @@ public class SolrJSONResultSet implements ResultSet, JSONResult private Map>>> highlighting = new HashMap<>(); - private Map>> facetIntervals = new HashMap>>(1); - + private Map>> facetIntervals = new HashMap>>(1); + private Map>> facetRanges = new HashMap>>(); private List pivotFacets = new ArrayList<>(); @@ -298,32 +298,32 @@ public class SolrJSONResultSet implements ResultSet, JSONResult String pivotName = (String)it.next(); pivotFacets = buildPivot(facet_pivot, pivotName); } - } - - if(facet_counts.has("facet_ranges")) - { - JSONObject facet_ranges = facet_counts.getJSONObject("facet_ranges"); - for(Iterator it = facet_ranges.keys(); it.hasNext();) - { - String fieldName = (String) it.next(); - String end = facet_ranges.getJSONObject(fieldName).getString("end"); - JSONArray rangeCollection = facet_ranges.getJSONObject(fieldName).getJSONArray("counts"); - List> buckets = new ArrayList>(); - for(int i = 0; i < rangeCollection.length(); i+=2) - { - Map rangeMap = new HashMap(3); - String rangeFrom = rangeCollection.getString(i); - String facetRangeCount = rangeCollection.getString(i+1); - String rangeTo = (i+2 < rangeCollection.length() ? rangeCollection.getString(i+2):end); - String label = rangeFrom + " - " + rangeTo; - rangeMap.put("label", label); - rangeMap.put("count", facetRangeCount); - rangeMap.put("from", rangeFrom); - rangeMap.put("to", rangeTo); - buckets.add(rangeMap); - } - facetRanges.put(fieldName, buckets); - } + } + + if(facet_counts.has("facet_ranges")) + { + JSONObject facet_ranges = facet_counts.getJSONObject("facet_ranges"); + for(Iterator it = facet_ranges.keys(); it.hasNext();) + { + String fieldName = (String) it.next(); + String end = facet_ranges.getJSONObject(fieldName).getString("end"); + JSONArray rangeCollection = facet_ranges.getJSONObject(fieldName).getJSONArray("counts"); + List> buckets = new ArrayList>(); + for(int i = 0; i < rangeCollection.length(); i+=2) + { + Map rangeMap = new HashMap(3); + String rangeFrom = rangeCollection.getString(i); + String facetRangeCount = rangeCollection.getString(i+1); + String rangeTo = (i+2 < rangeCollection.length() ? rangeCollection.getString(i+2):end); + String label = rangeFrom + " - " + rangeTo; + rangeMap.put(GenericFacetResponse.LABEL, label); + rangeMap.put(GenericFacetResponse.COUNT, facetRangeCount); + rangeMap.put(GenericFacetResponse.START, rangeFrom); + rangeMap.put(GenericFacetResponse.END, rangeTo); + buckets.add(rangeMap); + } + facetRanges.put(fieldName, buckets); + } } } @@ -722,11 +722,11 @@ public class SolrJSONResultSet implements ResultSet, JSONResult public boolean getProcessedDenies() { return processedDenies; - } - - public Map>> getFacetRanges() - { - return facetRanges; - } + } + + public Map>> getFacetRanges() + { + return facetRanges; + } } diff --git a/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericBucket.java b/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericBucket.java index 5b789e2249..d74b65530a 100644 --- a/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericBucket.java +++ b/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericBucket.java @@ -58,14 +58,14 @@ public class GenericBucket this.facets = facets; } - public GenericBucket(String label, String filterQuery, Object display, Set metrics, List facets, Map facetInfo) + public GenericBucket(String label, String filterQuery, Object display, Set metrics, List facets, Map bucketInfo) { this.label = label; this.filterQuery = filterQuery; this.display = display; this.metrics = metrics; this.facets = facets; - this.bucketInfo = facetInfo; + this.bucketInfo = bucketInfo; } public String getFilterQuery() diff --git a/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericFacetResponse.java b/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericFacetResponse.java index 4e4467b123..f9c6892a98 100644 --- a/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericFacetResponse.java +++ b/source/java/org/alfresco/repo/search/impl/solr/facet/facetsresponse/GenericFacetResponse.java @@ -37,6 +37,13 @@ public class GenericFacetResponse private final String label; private final List buckets; + public static final String LABEL = "label"; + public static final String COUNT = "count"; + public static final String START = "start"; + public static final String END = "end"; + public static final String START_INC = "startInclusive"; + public static final String END_INC = "endInclusive"; + public GenericFacetResponse(FACET_TYPE type, String label, List buckets) { this.type = type;