From 9edb795eff72d52ec2efcba1cefb0eb02de1e5f6 Mon Sep 17 00:00:00 2001 From: Gethin James Date: Thu, 1 Jun 2017 11:08:20 +0000 Subject: [PATCH] Merged searchrep (5.2.1) to 5.2.N (5.2.1) 136690 msuzuki: Search-340, Added addtional params: include, other and hardend git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137041 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../search/impl/lucene/SolrJSONResultSet.java | 1 + .../search/impl/solr/SolrQueryHTTPClient.java | 9 +++++++++ .../impl/solr/SolrQueryHTTPClientTest.java | 19 ++++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) 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