Merged 5.2.N (5.2.2) to HEAD (5.2)

137060 gjames: Merged searchrep (5.2.1) to 5.2.N (5.2.1)
      136808 gjames: SEARCH-339: Adding bucketInfo for intervals with consistent names


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@137575 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrei Rebegea
2017-06-15 11:16:10 +00:00
parent 4789c31b3b
commit 229f589b01
3 changed files with 37 additions and 13 deletions

View File

@@ -506,10 +506,10 @@ public class ResultMapper
} }
private static GenericBucket buildGenericBucketFromRange(String facetField, Map<String,String> facet) private static GenericBucket buildGenericBucketFromRange(String facetField, Map<String,String> facet)
{ {
String from = facet.get("from"); String from = facet.get(GenericFacetResponse.START);
String to = facet.get("to"); String to = facet.get(GenericFacetResponse.END);
String label = facet.get("label"); String label = facet.get(GenericFacetResponse.LABEL);
facet.remove("label"); facet.remove(GenericFacetResponse.LABEL);
String filterQ = String.format("%s:(%s TO %s)", String filterQ = String.format("%s:(%s TO %s)",
facetField, facetField,
from, from,
@@ -517,7 +517,7 @@ public class ResultMapper
return new GenericBucket(label, return new GenericBucket(label,
filterQ, filterQ,
null, null,
new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,facet.get("count")))), new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,facet.get(GenericFacetResponse.COUNT)))),
null, null,
facet); facet);
@@ -543,6 +543,8 @@ public class ResultMapper
for (Pair<String, Integer> buck:facet.getValue()) for (Pair<String, Integer> buck:facet.getValue())
{ {
String filterQuery = null; String filterQuery = null;
Map<String, String> bucketInfo = new HashMap<>();
if (searchQuery != null if (searchQuery != null
&& searchQuery.getFacetIntervals() != null && searchQuery.getFacetIntervals() != null
&& searchQuery.getFacetIntervals().getIntervals() != null && searchQuery.getFacetIntervals().getIntervals() != null
@@ -555,11 +557,18 @@ public class ResultMapper
if (found.get().getSets() != null) if (found.get().getSets() != null)
{ {
Optional<IntervalSet> foundSet = found.get().getSets().stream().filter(aSet -> buck.getFirst().equals(aSet.getLabel())).findFirst(); Optional<IntervalSet> foundSet = found.get().getSets().stream().filter(aSet -> buck.getFirst().equals(aSet.getLabel())).findFirst();
if (foundSet.isPresent()) filterQuery = found.get().getField()+":"+foundSet.get().toAFTSQuery(); if (foundSet.isPresent())
{
filterQuery = found.get().getField() + ":" + foundSet.get().toAFTSQuery();
bucketInfo.put(GenericFacetResponse.START, foundSet.get().getStart());
bucketInfo.put(GenericFacetResponse.END, foundSet.get().getEnd());
bucketInfo.put(GenericFacetResponse.START_INC, String.valueOf(foundSet.get().isStartInclusive()));
bucketInfo.put(GenericFacetResponse.END_INC, String.valueOf(foundSet.get().isEndInclusive()));
}
} }
} }
} }
GenericBucket bucket = new GenericBucket(buck.getFirst(), filterQuery, null , new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,String.valueOf(buck.getSecond())))), null); GenericBucket bucket = new GenericBucket(buck.getFirst(), filterQuery, null , new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,String.valueOf(buck.getSecond())))), null, bucketInfo);
buckets.add(bucket); buckets.add(bucket);
} }
ffcs.add(new GenericFacetResponse(FACET_TYPE.interval, facet.getKey(), buckets)); ffcs.add(new GenericFacetResponse(FACET_TYPE.interval, facet.getKey(), buckets));

View File

@@ -491,23 +491,23 @@ public class ResultMapperTests
assertEquals("content.size:(0 TO 100)", rangeFacets.get(1).getBuckets().get(0).getFilterQuery()); assertEquals("content.size:(0 TO 100)", rangeFacets.get(1).getBuckets().get(0).getFilterQuery());
Map<String, String> facetInfo = rangeFacets.get(1).getBuckets().get(0).getBucketInfo(); Map<String, String> facetInfo = rangeFacets.get(1).getBuckets().get(0).getBucketInfo();
assertEquals("0",facetInfo.get("from")); assertEquals("0",facetInfo.get("start"));
assertEquals("100",facetInfo.get("to")); assertEquals("100",facetInfo.get("end"));
assertEquals("100 - 200",rangeFacets.get(1).getBuckets().get(1).getLabel()); assertEquals("100 - 200",rangeFacets.get(1).getBuckets().get(1).getLabel());
metrics = rangeFacets.get(1).getBuckets().get(1).getMetrics().toArray(); metrics = rangeFacets.get(1).getBuckets().get(1).getMetrics().toArray();
assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count")); assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count"));
facetInfo = rangeFacets.get(1).getBuckets().get(1).getBucketInfo(); facetInfo = rangeFacets.get(1).getBuckets().get(1).getBucketInfo();
assertEquals("100",facetInfo.get("from")); assertEquals("100",facetInfo.get("start"));
assertEquals("200",facetInfo.get("to")); assertEquals("200",facetInfo.get("end"));
assertEquals("content.size:(100 TO 200)", rangeFacets.get(1).getBuckets().get(1).getFilterQuery()); assertEquals("content.size:(100 TO 200)", rangeFacets.get(1).getBuckets().get(1).getFilterQuery());
assertEquals("200 - 300",rangeFacets.get(1).getBuckets().get(2).getLabel()); assertEquals("200 - 300",rangeFacets.get(1).getBuckets().get(2).getLabel());
metrics = rangeFacets.get(1).getBuckets().get(2).getMetrics().toArray(); metrics = rangeFacets.get(1).getBuckets().get(2).getMetrics().toArray();
assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count")); assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count"));
facetInfo = rangeFacets.get(1).getBuckets().get(2).getBucketInfo(); facetInfo = rangeFacets.get(1).getBuckets().get(2).getBucketInfo();
assertEquals("200",facetInfo.get("from")); assertEquals("200",facetInfo.get("start"));
assertEquals("300",facetInfo.get("to")); assertEquals("300",facetInfo.get("end"));
assertEquals("content.size:(200 TO 300)", rangeFacets.get(1).getBuckets().get(2).getFilterQuery()); assertEquals("content.size:(200 TO 300)", rangeFacets.get(1).getBuckets().get(2).getFilterQuery());
} }

View File

@@ -881,8 +881,23 @@ public class SearchMapperTests
anIntervalSet.add(new IntervalSet("1", "10", "bert", false, false)); anIntervalSet.add(new IntervalSet("1", "10", "bert", false, false));
intervalList = Arrays.asList(new Interval("cm:price", "Price", null), new Interval("cm:price", "Price", anIntervalSet)); intervalList = Arrays.asList(new Interval("cm:price", "Price", null), new Interval("cm:price", "Price", anIntervalSet));
intervalParameters = new IntervalParameters(intervalSets,intervalList); intervalParameters = new IntervalParameters(intervalSets,intervalList);
try
{
searchMapper.fromFacetIntervals(searchParameters, intervalParameters);
fail();
}
catch (InvalidArgumentException iae)
{
//duplicate labels
assertNotNull(iae);
}
intervalList = Arrays.asList(new Interval("cm:price", "Prices", null), new Interval("cm:price", "Pricey", anIntervalSet));
intervalParameters = new IntervalParameters(intervalSets,intervalList);
searchMapper.fromFacetIntervals(searchParameters, intervalParameters); searchMapper.fromFacetIntervals(searchParameters, intervalParameters);
assertEquals(searchParameters.getInterval(), intervalParameters); assertEquals(searchParameters.getInterval(), intervalParameters);
} }
@Test @Test