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;
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.opencmis.dictionary.CMISStrictDictionaryService;
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.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
*/
@@ -840,7 +836,7 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean
{
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())
{
@@ -885,14 +881,10 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean
IntervalSet rangeSet = parseDateInterval(new IntervalSet(facetRange.getStart(), facetRange.getEnd(), facetRange.getGap(), startIncl, endInc), isDate);
url.append("&facet.range=");
if(!facetRange.getTags().isEmpty())
if(facetRange.getLabel()!= null && !facetRange.getLabel().isEmpty())
{
url.append(encoder.encode("{!", "UTF-8"));
for(String tag:facetRange.getTags())
{
url.append(encoder.encode(String.format("tag=%s ",tag), "UTF-8"));
}
url.append(encoder.encode(String.format("tag=%s ",facetRange.getLabel()), "UTF-8"));
url.append(encoder.encode("}", "UTF-8"));
}

View File

@@ -409,7 +409,7 @@ public class SolrQueryHTTPClientTest
null, null, null, null,null, null, null)
));
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);
StringBuilder urlBuilder = new StringBuilder();
@@ -463,18 +463,15 @@ public class SolrQueryHTTPClientTest
List<String> filters = new ArrayList<String>();
filters.add("bart");
filters.add("homer");
List<String> tags = new ArrayList<String>();
tags.add("dt");
tags.add("doc");
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);
urlBuilder = new StringBuilder();
client.buildRangeParameters(params, encoder, urlBuilder);
String url2 = urlBuilder.toString();
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.end=1000000"));
assertTrue(url2.contains("&f.content.size.facet.range.gap=10000"));