mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged searchrep (5.2.1) to 5.2.N (5.2.1)
136699 msuzuki: search-340, added addtional facet data relating to range on the generic facet model git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137042 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();
|
Map<String, List<Pair<String, Integer>>> facetInterval = solrResultSet.getFacetIntervals();
|
||||||
facets.addAll(getGenericFacetsForIntervals(facetInterval, searchQuery));
|
facets.addAll(getGenericFacetsForIntervals(facetInterval, searchQuery));
|
||||||
|
|
||||||
Map<String, List<Pair<String, Integer>>> facetRanges = solrResultSet.getFacetRanges();
|
Map<String,List> facetRanges = solrResultSet.getFacetRanges();
|
||||||
facets.addAll(getGenericFacetsForRanges(facetRanges, searchQuery));
|
facets.addAll(getGenericFacetsForRanges(facetRanges, searchQuery));
|
||||||
|
|
||||||
List<GenericFacetResponse> stats = getFieldStats(searchRequestContext, solrResultSet.getStats());
|
List<GenericFacetResponse> stats = getFieldStats(searchRequestContext, solrResultSet.getStats());
|
||||||
@@ -490,26 +490,40 @@ public class ResultMapper
|
|||||||
* @param searchQuery
|
* @param searchQuery
|
||||||
* @return GenericFacetResponse
|
* @return GenericFacetResponse
|
||||||
*/
|
*/
|
||||||
protected static List<GenericFacetResponse> getGenericFacetsForRanges(Map<String, List<Pair<String, Integer>>> facetFields, SearchQuery searchQuery)
|
protected static List<GenericFacetResponse> getGenericFacetsForRanges( Map<String,List> facetFields, SearchQuery searchQuery)
|
||||||
{
|
{
|
||||||
List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size());
|
List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size());
|
||||||
if (facetFields != null && !facetFields.isEmpty())
|
if (facetFields != null && !facetFields.isEmpty())
|
||||||
{
|
{
|
||||||
for (Entry<String, List<Pair<String, Integer>>> facet:facetFields.entrySet())
|
List<GenericBucket> buckets = new ArrayList<>();
|
||||||
|
for (Entry<String, List> facet : facetFields.entrySet())
|
||||||
{
|
{
|
||||||
if (facet.getValue() != null && !facet.getValue().isEmpty())
|
facet.getValue().forEach(action -> buckets.add(buildGenericBucketFromRange((Map<String, String>) action)));
|
||||||
{
|
ffcs.add(new GenericFacetResponse(FACET_TYPE.range, facet.getKey(), buckets));
|
||||||
List<GenericBucket> buckets = new ArrayList<>();
|
}
|
||||||
facet.getValue().forEach(action -> buckets.add(
|
|
||||||
new GenericBucket(action.getFirst(), null, null ,
|
|
||||||
new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,String.valueOf(action.getSecond())))),
|
|
||||||
null)));
|
|
||||||
ffcs.add(new GenericFacetResponse(FACET_TYPE.range, facet.getKey(), buckets));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return ffcs;
|
return ffcs;
|
||||||
}
|
}
|
||||||
|
private static GenericBucket buildGenericBucketFromRange(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")));
|
||||||
|
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns generic faceting responses for Intervals
|
* Returns generic faceting responses for Intervals
|
||||||
* @param facetFields
|
* @param facetFields
|
||||||
|
@@ -83,6 +83,7 @@ import org.alfresco.service.cmr.version.VersionHistory;
|
|||||||
import org.alfresco.service.cmr.version.VersionService;
|
import org.alfresco.service.cmr.version.VersionService;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.alfresco.util.GUID;
|
import org.alfresco.util.GUID;
|
||||||
|
import org.alfresco.util.Pair;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@@ -475,17 +476,27 @@ public class ResultMapperTests
|
|||||||
assertEquals(1, rangeFacets.size());
|
assertEquals(1, rangeFacets.size());
|
||||||
assertEquals(3, rangeFacets.get(0).getBuckets().size());
|
assertEquals(3, rangeFacets.get(0).getBuckets().size());
|
||||||
assertEquals("content.size",rangeFacets.get(0).getLabel());
|
assertEquals("content.size",rangeFacets.get(0).getLabel());
|
||||||
assertEquals("0",rangeFacets.get(0).getBuckets().get(0).getLabel());
|
assertEquals("0 - 100",rangeFacets.get(0).getBuckets().get(0).getLabel());
|
||||||
Object[] metrics = rangeFacets.get(0).getBuckets().get(0).getMetrics().toArray();
|
Object[] metrics = rangeFacets.get(0).getBuckets().get(0).getMetrics().toArray();
|
||||||
assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count"));
|
assertEquals("4",((SimpleMetric) metrics[0]).getValue().get("count"));
|
||||||
|
|
||||||
assertEquals("100",rangeFacets.get(0).getBuckets().get(1).getLabel());
|
Map<String, String> facetInfo = rangeFacets.get(0).getBuckets().get(0).getFacetInfo();
|
||||||
|
assertEquals("0",facetInfo.get("from"));
|
||||||
|
assertEquals("100",facetInfo.get("to"));
|
||||||
|
|
||||||
|
assertEquals("100 - 200",rangeFacets.get(0).getBuckets().get(1).getLabel());
|
||||||
metrics = rangeFacets.get(0).getBuckets().get(1).getMetrics().toArray();
|
metrics = rangeFacets.get(0).getBuckets().get(1).getMetrics().toArray();
|
||||||
assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count"));
|
assertEquals("6",((SimpleMetric) metrics[0]).getValue().get("count"));
|
||||||
|
facetInfo = rangeFacets.get(0).getBuckets().get(1).getFacetInfo();
|
||||||
|
assertEquals("100",facetInfo.get("from"));
|
||||||
|
assertEquals("200",facetInfo.get("to"));
|
||||||
|
|
||||||
assertEquals("200",rangeFacets.get(0).getBuckets().get(2).getLabel());
|
assertEquals("200 - 300",rangeFacets.get(0).getBuckets().get(2).getLabel());
|
||||||
metrics = rangeFacets.get(0).getBuckets().get(2).getMetrics().toArray();
|
metrics = rangeFacets.get(0).getBuckets().get(2).getMetrics().toArray();
|
||||||
assertEquals("3",((SimpleMetric) metrics[0]).getValue().get("count"));
|
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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user