diff --git a/config/alfresco/solr-facets-context.xml b/config/alfresco/solr-facets-context.xml index 742181f2aa..f212d55efd 100644 --- a/config/alfresco/solr-facets-context.xml +++ b/config/alfresco/solr-facets-context.xml @@ -69,11 +69,17 @@ - + SITE + + + + + + diff --git a/source/java/org/alfresco/repo/search/impl/solr/facet/handler/SiteTitleDisplayHandler.java b/source/java/org/alfresco/repo/search/impl/solr/facet/handler/SiteTitleDisplayHandler.java index eb8bc89f4d..37f27dbd53 100644 --- a/source/java/org/alfresco/repo/search/impl/solr/facet/handler/SiteTitleDisplayHandler.java +++ b/source/java/org/alfresco/repo/search/impl/solr/facet/handler/SiteTitleDisplayHandler.java @@ -21,6 +21,7 @@ package org.alfresco.repo.search.impl.solr.facet.handler; import java.util.Collections; import java.util.HashSet; +import java.util.Map; import java.util.Set; import org.alfresco.service.cmr.site.SiteInfo; @@ -36,12 +37,19 @@ import org.springframework.extensions.surf.util.ParameterCheck; */ public class SiteTitleDisplayHandler extends AbstractFacetLabelDisplayHandler { + private final Map nonSiteLocationsLabels; public SiteTitleDisplayHandler(Set supportedFieldFacets) + { + this(supportedFieldFacets, Collections. emptyMap()); + } + + public SiteTitleDisplayHandler(Set supportedFieldFacets, Map nonSiteLocationsLabels) { ParameterCheck.mandatory("supportedFieldFacets", supportedFieldFacets); this.supportedFieldFacets = Collections.unmodifiableSet(new HashSet<>(supportedFieldFacets)); + this.nonSiteLocationsLabels = nonSiteLocationsLabels == null ? Collections. emptyMap() : nonSiteLocationsLabels; } @Override @@ -49,9 +57,19 @@ public class SiteTitleDisplayHandler extends AbstractFacetLabelDisplayHandler { // Solr returns the site short name encoded value = ISO9075.decode(value); - SiteService siteService = serviceRegistry.getSiteService(); - SiteInfo siteInfo = siteService.getSite(value); - String title = siteInfo != null ? siteInfo.getTitle() : value; + String title = null; + + if (nonSiteLocationsLabels.containsKey(value)) + { + title = nonSiteLocationsLabels.get(value); + } + else + { + SiteService siteService = serviceRegistry.getSiteService(); + SiteInfo siteInfo = siteService.getSite(value); + title = siteInfo != null ? siteInfo.getTitle() : value; + } + return new FacetLabel(value, title, -1); } }