Merged searchrep (5.2.1) to 5.2.N (5.2.1)

137016 gjames: SEARCH-340: Changing range tags to label


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137088 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gethin James
2017-06-01 11:23:07 +00:00
parent f44c48d661
commit fbb0a8d52f
2 changed files with 24 additions and 35 deletions

View File

@@ -26,27 +26,6 @@
package org.alfresco.repo.search.impl.solr; package org.alfresco.repo.search.impl.solr;
import static org.alfresco.util.SearchDateConversion.parseDateInterval; import static org.alfresco.util.SearchDateConversion.parseDateInterval;
import static org.alfresco.util.SearchDateConversion.parseDateString;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import java.util.StringJoiner;
import javax.servlet.http.HttpServletResponse;
import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.opencmis.dictionary.CMISStrictDictionaryService; import org.alfresco.opencmis.dictionary.CMISStrictDictionaryService;
import org.alfresco.repo.admin.RepositoryState; import org.alfresco.repo.admin.RepositoryState;
@@ -113,6 +92,23 @@ import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.extensions.surf.util.I18NUtil; import org.springframework.extensions.surf.util.I18NUtil;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import java.util.StringJoiner;
/** /**
* @author Andy * @author Andy
*/ */
@@ -840,7 +836,7 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean
{ {
for (RangeParameters aRange:searchParameters.getRanges()) for (RangeParameters aRange:searchParameters.getRanges())
{ {
Optional<String> found = pivotKeys.stream().filter(aKey -> aRange.getTags().contains(aKey)).findFirst(); Optional<String> found = pivotKeys.stream().filter(aKey -> aKey.equals(aRange.getLabel())).findFirst();
if (found.isPresent()) if (found.isPresent())
{ {
@@ -885,14 +881,10 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean
IntervalSet rangeSet = parseDateInterval(new IntervalSet(facetRange.getStart(), facetRange.getEnd(), facetRange.getGap(), startIncl, endInc), isDate); IntervalSet rangeSet = parseDateInterval(new IntervalSet(facetRange.getStart(), facetRange.getEnd(), facetRange.getGap(), startIncl, endInc), isDate);
url.append("&facet.range="); url.append("&facet.range=");
if(!facetRange.getTags().isEmpty()) if(facetRange.getLabel()!= null && !facetRange.getLabel().isEmpty())
{ {
url.append(encoder.encode("{!", "UTF-8")); url.append(encoder.encode("{!", "UTF-8"));
url.append(encoder.encode(String.format("tag=%s ",facetRange.getLabel()), "UTF-8"));
for(String tag:facetRange.getTags())
{
url.append(encoder.encode(String.format("tag=%s ",tag), "UTF-8"));
}
url.append(encoder.encode("}", "UTF-8")); url.append(encoder.encode("}", "UTF-8"));
} }

View File

@@ -409,7 +409,7 @@ public class SolrQueryHTTPClientTest
null, null, null, null,null, null, null) null, null, null, null,null, null, null)
)); ));
List<RangeParameters> ranges = new ArrayList<RangeParameters>(); List<RangeParameters> ranges = new ArrayList<RangeParameters>();
ranges.add(new RangeParameters("content.size", "0", "1000000", "10000", true, Collections.emptyList(), Collections.emptyList(), Arrays.asList("csize"), null)); ranges.add(new RangeParameters("content.size", "0", "1000000", "10000", true, Collections.emptyList(), Collections.emptyList(), "csize", null));
params.setRanges(ranges); params.setRanges(ranges);
StringBuilder urlBuilder = new StringBuilder(); StringBuilder urlBuilder = new StringBuilder();
@@ -463,18 +463,15 @@ public class SolrQueryHTTPClientTest
List<String> filters = new ArrayList<String>(); List<String> filters = new ArrayList<String>();
filters.add("bart"); filters.add("bart");
filters.add("homer"); filters.add("homer");
List<String> tags = new ArrayList<String>();
tags.add("dt");
tags.add("doc");
ranges.clear(); ranges.clear();
ranges.add(new RangeParameters("content.size", "0", "1000000", "10000", true, Collections.emptyList(), Collections.emptyList(), tags, filters)); ranges.add(new RangeParameters("content.size", "0", "1000000", "10000", true, Collections.emptyList(), Collections.emptyList(), "doc", filters));
params.setRanges(ranges); params.setRanges(ranges);
urlBuilder = new StringBuilder(); urlBuilder = new StringBuilder();
client.buildRangeParameters(params, encoder, urlBuilder); client.buildRangeParameters(params, encoder, urlBuilder);
String url2 = urlBuilder.toString(); String url2 = urlBuilder.toString();
assertTrue(url2.contains("&facet=true")); assertTrue(url2.contains("&facet=true"));
assertTrue(url2.contains("&facet.range="+encoder.encode("{!tag=dt tag=doc }", "UTF-8")+"content.size")); assertTrue(url2.contains("&facet.range="+encoder.encode("{!tag=doc }", "UTF-8")+"content.size"));
assertTrue(url2.contains("&f.content.size.facet.range.start=0")); assertTrue(url2.contains("&f.content.size.facet.range.start=0"));
assertTrue(url2.contains("&f.content.size.facet.range.end=1000000")); assertTrue(url2.contains("&f.content.size.facet.range.end=1000000"));
assertTrue(url2.contains("&f.content.size.facet.range.gap=10000")); assertTrue(url2.contains("&f.content.size.facet.range.gap=10000"));