diff --git a/config/alfresco/script-services-context.xml b/config/alfresco/script-services-context.xml
index b736cb43ad..59d7521033 100644
--- a/config/alfresco/script-services-context.xml
+++ b/config/alfresco/script-services-context.xml
@@ -113,6 +113,9 @@
+
+
+
${spaces.store}
diff --git a/config/alfresco/solr-facets-context.xml b/config/alfresco/solr-facets-context.xml
index 3fb02a4460..0ec15f0339 100644
--- a/config/alfresco/solr-facets-context.xml
+++ b/config/alfresco/solr-facets-context.xml
@@ -18,6 +18,7 @@
+
@@ -25,6 +26,7 @@
+
@@ -41,4 +43,19 @@
${solr_facets.root}
+
+
+
+
+
+ SITE
+ TAG
+ ANCESTOR
+ PARENT
+ ASPECT
+ TYPE
+ OWNER
+
+
+
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/jscript/Search.java b/source/java/org/alfresco/repo/jscript/Search.java
index 25e403ec85..c6cfd48a37 100644
--- a/source/java/org/alfresco/repo/jscript/Search.java
+++ b/source/java/org/alfresco/repo/jscript/Search.java
@@ -104,6 +104,12 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
this.solrFacetHelper = new SolrFacetHelper(services);
}
+
+ public void setSolrFacetHelper(SolrFacetHelper solrFacetHelper)
+ {
+ this.solrFacetHelper = solrFacetHelper;
+ }
+
/**
* Set the default store reference
*
@@ -717,8 +723,18 @@ public class Search extends BaseScopableProcessorExtension implements Initializi
{
for (String field: facets)
{
- sp.addFieldFacet(new FieldFacet("@" + field));
+ final FieldFacet fieldFacet;
+ if (solrFacetHelper.isSpecialFacetId(field))
+ {
+ fieldFacet = new FieldFacet(field);
+ }
+ else
+ {
+ fieldFacet = new FieldFacet("@" + field);
+ }
+ sp.addFieldFacet(fieldFacet);
}
+
List facetQueries = null;
// Workaround for ACE-1605
if (query.indexOf("created:") < 0 && query.indexOf("modified:") < 0)
diff --git a/source/java/org/alfresco/repo/search/impl/solr/facet/SolrFacetHelper.java b/source/java/org/alfresco/repo/search/impl/solr/facet/SolrFacetHelper.java
index 0605f62a2d..bc4dd7b8a5 100644
--- a/source/java/org/alfresco/repo/search/impl/solr/facet/SolrFacetHelper.java
+++ b/source/java/org/alfresco/repo/search/impl/solr/facet/SolrFacetHelper.java
@@ -105,7 +105,17 @@ public class SolrFacetHelper
BUCKETED_FIELD_FACETS.add(MODIFIED_FIELD_FACET_QUERY);
BUCKETED_FIELD_FACETS.add(CONTENT_SIZE_FIELD_FACET_QUERY);
}
-
+
+ /** These facet IDs are recognised by SOLR and can be used directly within facetted searches. */
+ private Set specialFacetIds = Collections.emptySet();
+ {
+ }
+
+ public void setSpecialFacetIds(Set ids)
+ {
+ this.specialFacetIds = ids;
+ }
+
/** Facet value and facet query display label handlers */
private Map displayHandlers;
@@ -288,6 +298,15 @@ public class SolrFacetHelper
{
return Collections.unmodifiableSet(BUCKETED_FIELD_FACETS);
}
+
+ /**
+ * Is the specified facet ID part of the list of "specials" which are
+ * handled by our SOLR service as is?
+ */
+ public boolean isSpecialFacetId(String facetId)
+ {
+ return specialFacetIds.contains(facetId);
+ }
/**
* Creates Date buckets. The dates are in ISO8601 format (yyyy-MM-dd)