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
|
//Field Facets
|
||||||
Map<String, List<Pair<String, Integer>>> facetFields = solrResultSet.getFieldFacets();
|
Map<String, List<Pair<String, Integer>>> facetFields = solrResultSet.getFieldFacets();
|
||||||
|
if(FacetFormat.V2 == searchQuery.getFacetFormat())
|
||||||
|
{
|
||||||
|
facets.addAll(getFacetBucketsForFacetFieldsAsFacets(facetFields, searchQuery));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
ffcs.addAll(getFacetBucketsForFacetFields(facetFields, searchQuery));
|
ffcs.addAll(getFacetBucketsForFacetFields(facetFields, searchQuery));
|
||||||
|
}
|
||||||
|
|
||||||
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));
|
||||||
@@ -456,7 +463,47 @@ public class ResultMapper
|
|||||||
|
|
||||||
return Collections.emptyList();
|
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)
|
protected List<FacetFieldContext> getFacetBucketsForFacetFields(Map<String, List<Pair<String, Integer>>> facetFields, SearchQuery searchQuery)
|
||||||
{
|
{
|
||||||
if (facetFields != null && !facetFields.isEmpty())
|
if (facetFields != null && !facetFields.isEmpty())
|
||||||
|
Reference in New Issue
Block a user