mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
Merged searchrep (5.2.1) to 5.2.N (5.2.1)
136733 msuzuki: Search-340, added mapping for tags and excludeFilters git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137047 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -299,12 +299,6 @@ public class SolrJSONResultSet implements ResultSet, JSONResult
|
||||
pivotFacets = buildPivot(facet_pivot, pivotName);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* "0":4
|
||||
* start:0
|
||||
* end:100
|
||||
*
|
||||
*/
|
||||
|
||||
if(facet_counts.has("facet_ranges"))
|
||||
{
|
||||
|
@@ -26,6 +26,24 @@
|
||||
package org.alfresco.repo.search.impl.solr;
|
||||
|
||||
import static org.alfresco.util.SearchDateConversion.parseDateInterval;
|
||||
|
||||
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.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;
|
||||
@@ -91,21 +109,6 @@ 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.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
/**
|
||||
* @author Andy
|
||||
*/
|
||||
@@ -839,6 +842,35 @@ public class SolrQueryHTTPClient implements BeanFactoryAware, InitializingBean
|
||||
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"));
|
||||
if(!searchParameters.getRange().getExcludeFilters().isEmpty())
|
||||
{
|
||||
url.append("&range.field=");
|
||||
if (searchParameters.getRange().getExcludeFilters() != null && !searchParameters.getRange().getExcludeFilters().isEmpty())
|
||||
{
|
||||
StringBuilder prefix = new StringBuilder("{!ex=");
|
||||
Iterator<String> itr = searchParameters.getRange().getExcludeFilters().iterator();
|
||||
while(itr.hasNext())
|
||||
{
|
||||
String val = itr.next();
|
||||
prefix.append(val);
|
||||
if(itr.hasNext())
|
||||
{
|
||||
prefix.append(",");
|
||||
}
|
||||
}
|
||||
prefix.append("}");
|
||||
url.append(prefix);
|
||||
}
|
||||
|
||||
}
|
||||
if(!searchParameters.getRange().getTags().isEmpty())
|
||||
{
|
||||
for(String tag:searchParameters.getRange().getTags())
|
||||
{
|
||||
|
||||
url.append(String.format("&fq={!tag=%1$s}%1$s",tag));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -37,6 +37,7 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@@ -441,7 +442,13 @@ public class SolrQueryHTTPClientTest
|
||||
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, null, null);
|
||||
List<String> filters = new ArrayList<String>();
|
||||
filters.add("bart");
|
||||
filters.add("homer");
|
||||
List<String> tags = new ArrayList<String>();
|
||||
tags.add("dt");
|
||||
tags.add("doc");
|
||||
RangeParameters range2 = new RangeParameters("content.size", "0", "1000000", "10000", true, null, null, tags, filters);
|
||||
params.setRange(range2);
|
||||
urlBuilder = new StringBuilder();
|
||||
client.buildRangeParameters(params, encoder, urlBuilder);
|
||||
@@ -454,6 +461,9 @@ public class SolrQueryHTTPClientTest
|
||||
assertFalse(url2.contains("&facet.range.include=lower"));
|
||||
assertFalse(url2.contains("&facet.range.other=before"));
|
||||
assertTrue(url2.contains("&facet.range.hardend=true"));
|
||||
assertTrue(url2.contains("&range.field={!ex=bart,homer}"));
|
||||
assertTrue(url2.contains("&fq={!tag=dt}dt"));
|
||||
assertTrue(url2.contains("&fq={!tag=doc}doc"));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user