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);
|
pivotFacets = buildPivot(facet_pivot, pivotName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* "0":4
|
|
||||||
* start:0
|
|
||||||
* end:100
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(facet_counts.has("facet_ranges"))
|
if(facet_counts.has("facet_ranges"))
|
||||||
{
|
{
|
||||||
|
@@ -26,6 +26,24 @@
|
|||||||
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 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.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;
|
||||||
@@ -91,21 +109,6 @@ 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.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.StringJoiner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andy
|
* @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.other=").append(encoder.encode(""+searchParameters.getRange().getOther(), "UTF-8"));
|
||||||
}
|
}
|
||||||
url.append("&facet.range.hardend=").append(encoder.encode(""+searchParameters.getRange().isHardend(), "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 static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -441,7 +442,13 @@ public class SolrQueryHTTPClientTest
|
|||||||
assertTrue(url.contains("&facet.range.other=before"));
|
assertTrue(url.contains("&facet.range.other=before"));
|
||||||
assertTrue(url.contains("&facet.range.hardend=true"));
|
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);
|
params.setRange(range2);
|
||||||
urlBuilder = new StringBuilder();
|
urlBuilder = new StringBuilder();
|
||||||
client.buildRangeParameters(params, encoder, urlBuilder);
|
client.buildRangeParameters(params, encoder, urlBuilder);
|
||||||
@@ -454,6 +461,9 @@ public class SolrQueryHTTPClientTest
|
|||||||
assertFalse(url2.contains("&facet.range.include=lower"));
|
assertFalse(url2.contains("&facet.range.include=lower"));
|
||||||
assertFalse(url2.contains("&facet.range.other=before"));
|
assertFalse(url2.contains("&facet.range.other=before"));
|
||||||
assertTrue(url2.contains("&facet.range.hardend=true"));
|
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