diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.desc.xml
new file mode 100644
index 0000000000..c4b6bc251e
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.desc.xml
@@ -0,0 +1,10 @@
+
+ Get solr statistics
+ Get some basic statics from solr
+ /api/solr/site/{siteId}/stats
+ /api/solr/stats
+ argument
+ user
+ required
+ SOLR
+
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.json.ftl
new file mode 100644
index 0000000000..9f1f0d06d5
--- /dev/null
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/solr/stats.get.json.ftl
@@ -0,0 +1,32 @@
+{
+ "resultset": [
+ <#list result.stats as item>
+ ["${jsonUtils.encodeJSONString(item.name)}",${item.sum?c}, ${item.count?c}]
+ <#if item_has_next>,#if>
+ #list>
+ ],
+ "queryInfo": {
+ "numberFound": "${result.numberFound?c}",
+ "totalRows": "${resultSize?c}",
+ "sum": "${result.sum?c}",
+ "max": "${result.max?c}",
+ "mean": "${result.mean?c}"
+ },
+ "metadata": [
+ {
+ "colIndex": 0,
+ "colType": "String",
+ "colName": "name"
+ },
+ {
+ "colIndex": 1,
+ "colType": "Numeric",
+ "colName": "sum"
+ },
+ {
+ "colIndex": 2,
+ "colType": "Numeric",
+ "colName": "count"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index 5a4b145b48..f2447120cd 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -1548,6 +1548,12 @@
+
+
+
+
+
diff --git a/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java b/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java
new file mode 100644
index 0000000000..feda7aa54e
--- /dev/null
+++ b/source/java/org/alfresco/repo/web/scripts/solr/StatsGet.java
@@ -0,0 +1,89 @@
+package org.alfresco.repo.web.scripts.solr;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.alfresco.model.ContentModel;
+import org.alfresco.repo.security.permissions.AccessDeniedException;
+import org.alfresco.service.cmr.search.SearchParameters.SortDefinition;
+import org.alfresco.service.cmr.search.SearchService;
+import org.alfresco.service.cmr.search.StatsParameters;
+import org.alfresco.service.cmr.search.StatsResultSet;
+import org.alfresco.service.cmr.search.StatsService;
+import org.alfresco.service.cmr.site.SiteInfo;
+import org.alfresco.service.cmr.site.SiteService;
+import org.alfresco.service.namespace.NamespaceService;
+import org.alfresco.service.namespace.QName;
+import org.springframework.extensions.webscripts.Cache;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+/**
+ * Gets stats on Solr content
+ *
+ * @author Gethin James
+ */
+public class StatsGet extends DeclarativeWebScript
+{
+ StatsService stats;
+ SiteService siteService;
+
+ public void setStats(StatsService stats)
+ {
+ this.stats = stats;
+ }
+
+ public void setSiteService(SiteService siteService)
+ {
+ this.siteService = siteService;
+ }
+
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status, Cache cache)
+ {
+ Map templateVars = req.getServiceMatch().getTemplateVars();
+ SiteInfo siteInfo = null;
+
+ if (templateVars != null && templateVars.containsKey("siteId") )
+ {
+ siteInfo = siteService.getSite(templateVars.get("siteId"));
+ if (siteInfo == null)
+ {
+ throw new AccessDeniedException("No such site: " + templateVars.get("siteId"));
+ }
+ }
+
+ String contentProp = req.getParameter("contentProp");
+ if (contentProp == null) contentProp = "created"; //default
+
+ QName prop = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, contentProp);
+
+ String query = buildQuery(siteInfo);
+
+ StatsParameters params = new StatsParameters(SearchService.LANGUAGE_SOLR_FTS_ALFRESCO, query);
+ params.addSort(new SortDefinition(SortDefinition.SortType.FIELD, "contentsize", false));
+ params.addStatsParameter(StatsParameters.PARAM_FIELD, "contentsize");
+ params.addStatsParameter(StatsParameters.PARAM_FACET, StatsParameters.FACET_PREFIX+prop.toString());
+
+ StatsResultSet result = stats.query(params);
+
+ Map model = new HashMap(1, 1.0f);
+ model.put("result", result);
+ model.put("resultSize", result.getStats().size());
+ return model;
+ }
+
+ protected String buildQuery(SiteInfo siteInfo)
+ {
+ StringBuilder luceneQuery = new StringBuilder();
+ luceneQuery.append("TYPE:\"" + ContentModel.TYPE_CONTENT + "\"");
+
+ if (siteInfo != null)
+ {
+ luceneQuery.append(" AND ANCESTOR:\""+siteInfo.getNodeRef().toString()+"\"");
+ }
+ return luceneQuery.toString();
+ }
+
+}