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 ae8fc59589..d4c27124e4 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/SolrJSONResultSet.java @@ -300,6 +300,7 @@ public class SolrJSONResultSet implements ResultSet, JSONResult pivotFacets = buildPivot(facet_pivot, pivotName); } } + if(facet_counts.has("facet_ranges")) { JSONObject facet_ranges = facet_counts.getJSONObject("facet_ranges"); diff --git a/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java b/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java index 5e0bb5cc54..78af0eeef4 100644 --- a/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java +++ b/source/java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClient.java @@ -826,6 +826,15 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean url.append("&facet.range.start=").append(encoder.encode(""+searchParameters.getRange().getStart(), "UTF-8")); url.append("&facet.range.end=").append(encoder.encode(""+searchParameters.getRange().getEnd(), "UTF-8")); url.append("&facet.range.gap=").append(encoder.encode(""+searchParameters.getRange().getGap(), "UTF-8")); + if(searchParameters.getRange().getInclude() != null) + { + url.append("&facet.range.include=").append(encoder.encode(""+searchParameters.getRange().getInclude(), "UTF-8")); + } + if(searchParameters.getRange().getOther() != null) + { + url.append("&facet.range.other=").append(encoder.encode(""+searchParameters.getRange().getOther(), "UTF-8")); + } + url.append("&facet.range.hardend=").append(encoder.encode(""+searchParameters.getRange().isHardend(), "UTF-8")); } } diff --git a/source/test-java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClientTest.java b/source/test-java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClientTest.java index 5371c460aa..d31e7a9e4b 100644 --- a/source/test-java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClientTest.java +++ b/source/test-java/org/alfresco/repo/search/impl/solr/SolrQueryHTTPClientTest.java @@ -406,7 +406,7 @@ public class SolrQueryHTTPClientTest { SearchParameters params = new SearchParameters(); params.setSearchTerm("A*"); - RangeParameters range = new RangeParameters("content.size", 1,"0", "1000000", "10000", true, null, null, null, null); + RangeParameters range = new RangeParameters("content.size", "0", "1000000", "10000", true, "before", "lower"); params.setRange(range); StringBuilder urlBuilder = new StringBuilder(); client.buildRangeParameters(params, encoder, urlBuilder); @@ -417,6 +417,23 @@ public class SolrQueryHTTPClientTest assertTrue(url.contains("&facet.range.start=0")); assertTrue(url.contains("&facet.range.end=1000000")); assertTrue(url.contains("&facet.range.gap=10000")); + assertTrue(url.contains("&facet.range.include=lower")); + assertTrue(url.contains("&facet.range.other=before")); + assertTrue(url.contains("&facet.range.hardend=true")); + + RangeParameters range2 = new RangeParameters("content.size", "0", "1000000", "10000", true, null, null); + params.setRange(range2); + urlBuilder = new StringBuilder(); + client.buildRangeParameters(params, encoder, urlBuilder); + String url2 = urlBuilder.toString(); + assertTrue(url2.contains("&facet=true")); + assertTrue(url2.contains("&facet.range=content.size")); + assertTrue(url2.contains("&facet.range.start=0")); + assertTrue(url2.contains("&facet.range.end=1000000")); + assertTrue(url2.contains("&facet.range.gap=10000")); + assertFalse(url2.contains("&facet.range.include=lower")); + assertFalse(url2.contains("&facet.range.other=before")); + assertTrue(url2.contains("&facet.range.hardend=true")); } } \ No newline at end of file