mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.2.N (5.2.2) to HEAD (5.2)
137045 gjames: Merged searchrep (5.2.1) to 5.2.N (5.2.1) 136712 msuzuki: Search-340, added filterQuery to facet range response git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@137560 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -331,7 +331,7 @@ public class ResultMapper
|
||||
Map<String, List<Pair<String, Integer>>> facetInterval = solrResultSet.getFacetIntervals();
|
||||
facets.addAll(getGenericFacetsForIntervals(facetInterval, searchQuery));
|
||||
|
||||
Map<String,List> facetRanges = solrResultSet.getFacetRanges();
|
||||
Map<String,List<Map<String,String>>> facetRanges = solrResultSet.getFacetRanges();
|
||||
facets.addAll(getGenericFacetsForRanges(facetRanges, searchQuery));
|
||||
|
||||
List<GenericFacetResponse> stats = getFieldStats(searchRequestContext, solrResultSet.getStats());
|
||||
@@ -490,38 +490,38 @@ public class ResultMapper
|
||||
* @param searchQuery
|
||||
* @return GenericFacetResponse
|
||||
*/
|
||||
protected static List<GenericFacetResponse> getGenericFacetsForRanges( Map<String,List> facetFields, SearchQuery searchQuery)
|
||||
protected static List<GenericFacetResponse> getGenericFacetsForRanges( Map<String,List<Map<String,String>>> facetFields, SearchQuery searchQuery)
|
||||
{
|
||||
List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size());
|
||||
if (facetFields != null && !facetFields.isEmpty())
|
||||
if (facetFields != null && !facetFields.isEmpty() && searchQuery.getQuery() != null)
|
||||
{
|
||||
List<GenericBucket> buckets = new ArrayList<>();
|
||||
for (Entry<String, List> facet : facetFields.entrySet())
|
||||
for (Entry<String, List<Map<String, String>>> facet : facetFields.entrySet())
|
||||
{
|
||||
facet.getValue().forEach(action -> buckets.add(buildGenericBucketFromRange((Map<String, String>) action)));
|
||||
facet.getValue().forEach(action -> buckets.add(buildGenericBucketFromRange(facet.getKey(), (Map<String, String>) action)));
|
||||
ffcs.add(new GenericFacetResponse(FACET_TYPE.range, facet.getKey(), buckets));
|
||||
}
|
||||
}
|
||||
return ffcs;
|
||||
}
|
||||
private static GenericBucket buildGenericBucketFromRange(Map<String,String> facet)
|
||||
private static GenericBucket buildGenericBucketFromRange(String facetField, Map<String,String> facet)
|
||||
{
|
||||
return new GenericBucket(facet.get("label"),
|
||||
null,
|
||||
null,
|
||||
new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,facet.get("count")))),
|
||||
null,
|
||||
appendRangeInfo(facet.get("from"), facet.get("to")));
|
||||
String from = facet.get("from");
|
||||
String to = facet.get("to");
|
||||
String label = facet.get("label");
|
||||
facet.remove("label");
|
||||
String filterQ = String.format("%s:(%s TO %s)",
|
||||
facetField,
|
||||
from,
|
||||
to);
|
||||
return new GenericBucket(label,
|
||||
filterQ,
|
||||
null,
|
||||
new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,facet.get("count")))),
|
||||
null,
|
||||
facet);
|
||||
|
||||
}
|
||||
private static Map appendRangeInfo(String from, String to)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
Map<String,String> rangeInfo = new HashMap<String,String>(2);
|
||||
rangeInfo.put("from", from);
|
||||
rangeInfo.put("to", to);
|
||||
return rangeInfo;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -479,6 +479,7 @@ public class ResultMapperTests
|
||||
assertEquals("0 - 100",rangeFacets.get(0).getBuckets().get(0).getLabel());
|
||||
Object[] metrics = rangeFacets.get(0).getBuckets().get(0).getMetrics().toArray();
|
||||
assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count"));
|
||||
assertEquals("content.size:(0 TO 100)", rangeFacets.get(0).getBuckets().get(0).getFilterQuery());
|
||||
|
||||
Map<String, String> facetInfo = rangeFacets.get(0).getBuckets().get(0).getFacetInfo();
|
||||
assertEquals("0",facetInfo.get("from"));
|
||||
@@ -490,13 +491,15 @@ public class ResultMapperTests
|
||||
facetInfo = rangeFacets.get(0).getBuckets().get(1).getFacetInfo();
|
||||
assertEquals("100",facetInfo.get("from"));
|
||||
assertEquals("200",facetInfo.get("to"));
|
||||
|
||||
assertEquals("content.size:(100 TO 200)", rangeFacets.get(0).getBuckets().get(1).getFilterQuery());
|
||||
|
||||
assertEquals("200 - 300",rangeFacets.get(0).getBuckets().get(2).getLabel());
|
||||
metrics = rangeFacets.get(0).getBuckets().get(2).getMetrics().toArray();
|
||||
assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count"));
|
||||
facetInfo = rangeFacets.get(0).getBuckets().get(2).getFacetInfo();
|
||||
assertEquals("200",facetInfo.get("from"));
|
||||
assertEquals("300",facetInfo.get("to"));
|
||||
assertEquals("content.size:(200 TO 300)", rangeFacets.get(0).getBuckets().get(2).getFilterQuery());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user