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)
136974 msuzuki: Search-426, added conversion for facet query and facet fields git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137078 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -327,7 +327,14 @@ public class ResultMapper
|
||||
|
||||
//Field Facets
|
||||
Map<String, List<Pair<String, Integer>>> facetFields = solrResultSet.getFieldFacets();
|
||||
ffcs.addAll(getFacetBucketsForFacetFields(facetFields, searchQuery));
|
||||
if(FacetFormat.V2 == searchQuery.getFacetFormat())
|
||||
{
|
||||
facets.addAll(getFacetBucketsForFacetFieldsAsFacets(facetFields, searchQuery));
|
||||
}
|
||||
else
|
||||
{
|
||||
ffcs.addAll(getFacetBucketsForFacetFields(facetFields, searchQuery));
|
||||
}
|
||||
|
||||
Map<String, List<Pair<String, Integer>>> facetInterval = solrResultSet.getFacetIntervals();
|
||||
facets.addAll(getGenericFacetsForIntervals(facetInterval, searchQuery));
|
||||
@@ -456,7 +463,47 @@ public class ResultMapper
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
protected List<GenericFacetResponse> getFacetBucketsForFacetFieldsAsFacets(Map<String, List<Pair<String, Integer>>> facetFields, SearchQuery searchQuery)
|
||||
{
|
||||
if (facetFields != null && !facetFields.isEmpty())
|
||||
{
|
||||
List<GenericFacetResponse> ffcs = new ArrayList<>(facetFields.size());
|
||||
for (Entry<String, List<Pair<String, Integer>>> facet:facetFields.entrySet())
|
||||
{
|
||||
if (facet.getValue() != null && !facet.getValue().isEmpty())
|
||||
{
|
||||
List<GenericBucket> buckets = new ArrayList<>(facet.getValue().size());
|
||||
for (Pair<String, Integer> buck:facet.getValue())
|
||||
{
|
||||
Object display = null;
|
||||
String filterQuery = null;
|
||||
if (searchQuery != null
|
||||
&& searchQuery.getFacetFields() != null
|
||||
&& searchQuery.getFacetFields().getFacets() != null
|
||||
&& !searchQuery.getFacetFields().getFacets().isEmpty())
|
||||
{
|
||||
Optional<FacetField> found = searchQuery.getFacetFields().getFacets().stream().filter(
|
||||
queryable -> facet.getKey().equals(queryable.getLabel()!=null?queryable.getLabel():queryable.getField())).findFirst();
|
||||
if (found.isPresent())
|
||||
{
|
||||
display = propertyLookup.lookup(found.get().getField(), buck.getFirst());
|
||||
String fq = found.get().toFilterQuery(buck.getFirst());
|
||||
if (fq != null)
|
||||
{
|
||||
filterQuery = fq;
|
||||
}
|
||||
}
|
||||
}
|
||||
GenericBucket bucket = new GenericBucket(buck.getFirst(), filterQuery, null , new HashSet<Metric>(Arrays.asList(new SimpleMetric(METRIC_TYPE.count,String.valueOf(buck.getSecond())))), null, null);
|
||||
buckets.add(bucket);
|
||||
}
|
||||
ffcs.add(new GenericFacetResponse(FACET_TYPE.field,facet.getKey(), buckets));
|
||||
}
|
||||
}
|
||||
return ffcs;
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
protected List<FacetFieldContext> getFacetBucketsForFacetFields(Map<String, List<Pair<String, Integer>>> facetFields, SearchQuery searchQuery)
|
||||
{
|
||||
if (facetFields != null && !facetFields.isEmpty())
|
||||
|
Reference in New Issue
Block a user