diff --git a/dev-tools/idea/.idea/modules.xml b/dev-tools/idea/.idea/modules.xml
index 762e8854d94..5c096a6fff0 100644
--- a/dev-tools/idea/.idea/modules.xml
+++ b/dev-tools/idea/.idea/modules.xml
@@ -56,6 +56,7 @@
+
diff --git a/dev-tools/idea/.idea/workspace.xml b/dev-tools/idea/.idea/workspace.xml
index 4510770aa0d..2db9014b728 100644
--- a/dev-tools/idea/.idea/workspace.xml
+++ b/dev-tools/idea/.idea/workspace.xml
@@ -316,6 +316,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/dev-tools/idea/solr/contrib/analytics/analytics.iml b/dev-tools/idea/solr/contrib/analytics/analytics.iml
new file mode 100644
index 00000000000..b325d697c8c
--- /dev/null
+++ b/dev-tools/idea/solr/contrib/analytics/analytics.iml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/solr/contrib/analytics/build.xml b/solr/contrib/analytics/build.xml
new file mode 100644
index 00000000000..4a6926b8988
--- /dev/null
+++ b/solr/contrib/analytics/build.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ Analytics Package
+
+
+
+
+
+
+
+
+
+
diff --git a/solr/contrib/analytics/ivy.xml b/solr/contrib/analytics/ivy.xml
new file mode 100644
index 00000000000..ef3c87df64c
--- /dev/null
+++ b/solr/contrib/analytics/ivy.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/BasicAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/BasicAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/BasicAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/BasicAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/FacetingAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/FacetingAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/FacetingAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/FacetingAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/ValueAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/ValueAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/ValueAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/ValueAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/facet/FacetValueAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/FacetValueAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/facet/FacetValueAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/FacetValueAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/facet/FieldFacetAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/FieldFacetAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/facet/FieldFacetAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/FieldFacetAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/facet/QueryFacetAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/QueryFacetAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/facet/QueryFacetAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/QueryFacetAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/facet/RangeFacetAccumulator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/RangeFacetAccumulator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/facet/RangeFacetAccumulator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/RangeFacetAccumulator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/facet/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/facet/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/facet/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/accumulator/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/accumulator/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/accumulator/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/BaseExpression.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/BaseExpression.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/BaseExpression.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/BaseExpression.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/DualDelegateExpression.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/DualDelegateExpression.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/DualDelegateExpression.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/DualDelegateExpression.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/Expression.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/Expression.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/Expression.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/Expression.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/ExpressionFactory.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/ExpressionFactory.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/ExpressionFactory.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/ExpressionFactory.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/MultiDelegateExpression.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/MultiDelegateExpression.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/MultiDelegateExpression.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/MultiDelegateExpression.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/SingleDelegateExpression.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/SingleDelegateExpression.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/SingleDelegateExpression.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/SingleDelegateExpression.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/expression/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/expression/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/expression/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/AnalyticsStatisticsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/plugin/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/plugin/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/plugin/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/AbstractFieldFacetRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AbstractFieldFacetRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/AbstractFieldFacetRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AbstractFieldFacetRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/AnalyticsContentHandler.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsContentHandler.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/AnalyticsContentHandler.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsContentHandler.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/AnalyticsRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/AnalyticsRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/AnalyticsRequestFactory.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsRequestFactory.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/AnalyticsRequestFactory.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsRequestFactory.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/AnalyticsStats.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsStats.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/AnalyticsStats.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/AnalyticsStats.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/ExpressionRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/ExpressionRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/ExpressionRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/ExpressionRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/FacetRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/FacetRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/FacetRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/FacetRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/FieldFacetRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/FieldFacetRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/FieldFacetRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/FieldFacetRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/QueryFacetRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/QueryFacetRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/QueryFacetRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/QueryFacetRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/RangeFacetRequest.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/RangeFacetRequest.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/RangeFacetRequest.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/RangeFacetRequest.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/request/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/request/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/request/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/request/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/AbstractDelegatingStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/AbstractDelegatingStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/AbstractDelegatingStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/AbstractDelegatingStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/MedianStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/MedianStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/MedianStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/MedianStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/MinMaxStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/MinMaxStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/MinMaxStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/MinMaxStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/NumericStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/NumericStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/NumericStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/NumericStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/PercentileStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/PercentileStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/PercentileStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/PercentileStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/StatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/StatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/StatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/StatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/StatsCollectorSupplierFactory.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/StatsCollectorSupplierFactory.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/StatsCollectorSupplierFactory.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/StatsCollectorSupplierFactory.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/UniqueStatsCollector.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/UniqueStatsCollector.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/UniqueStatsCollector.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/UniqueStatsCollector.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/statistics/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/statistics/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/statistics/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/AnalyticsParams.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/AnalyticsParams.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/AnalyticsParams.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/AnalyticsParams.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/AnalyticsParsers.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/AnalyticsParsers.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/AnalyticsParsers.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/AnalyticsParsers.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/MedianCalculator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/MedianCalculator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/MedianCalculator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/MedianCalculator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/PercentileCalculator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/PercentileCalculator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/PercentileCalculator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/PercentileCalculator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/RangeEndpointCalculator.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/RangeEndpointCalculator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/RangeEndpointCalculator.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/RangeEndpointCalculator.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/package.html
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/AbsoluteValueDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/AbsoluteValueDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/AbsoluteValueDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/AbsoluteValueDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/AddDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/AddDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/AddDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/AddDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConcatStringFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConcatStringFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConcatStringFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConcatStringFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstDateSource.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstDateSource.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstDateSource.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstDateSource.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstDoubleSource.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstDoubleSource.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstDoubleSource.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstDoubleSource.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstStringSource.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstStringSource.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/ConstStringSource.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ConstStringSource.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/DateFieldSource.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DateFieldSource.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/DateFieldSource.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DateFieldSource.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/DateMathFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DateMathFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/DateMathFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DateMathFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/DivDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DivDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/DivDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DivDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/DualDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DualDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/DualDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/DualDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/FilterFieldSource.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/FilterFieldSource.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/FilterFieldSource.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/FilterFieldSource.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/LogDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/LogDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/LogDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/LogDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiDateFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiDateFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiDateFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiDateFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiStringFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiStringFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiStringFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiStringFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiplyDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiplyDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/MultiplyDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/MultiplyDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/NegateDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/NegateDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/NegateDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/NegateDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/PowDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/PowDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/PowDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/PowDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/ReverseStringFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ReverseStringFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/ReverseStringFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/ReverseStringFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/SingleDoubleFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/SingleDoubleFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/SingleDoubleFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/SingleDoubleFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/SingleStringFunction.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/SingleStringFunction.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/SingleStringFunction.java
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/SingleStringFunction.java
diff --git a/solr/core/src/java/org/apache/solr/analytics/util/valuesource/package.html b/solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/package.html
similarity index 100%
rename from solr/core/src/java/org/apache/solr/analytics/util/valuesource/package.html
rename to solr/contrib/analytics/src/java/org/apache/solr/analytics/util/valuesource/package.html
diff --git a/solr/core/src/java/org/apache/solr/handler/component/AnalyticsComponent.java b/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
rename to solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
diff --git a/solr/core/src/test-files/analytics/requestFiles/expressions.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/expressions.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/fieldFacetExtras.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/fieldFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/fieldFacets.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/functions.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/functions.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/noFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/noFacets.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/queryFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/queryFacets.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt
diff --git a/solr/core/src/test-files/analytics/requestFiles/rangeFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt
similarity index 100%
rename from solr/core/src/test-files/analytics/requestFiles/rangeFacets.txt
rename to solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/expressions.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/expressions.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/fieldFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/functions.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/functions.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/noFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/noFacets.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/queryFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/queryFacets.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml
diff --git a/solr/core/src/test-files/analytics/requestXMLFiles/rangeFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/rangeFacets.xml
similarity index 100%
rename from solr/core/src/test-files/analytics/requestXMLFiles/rangeFacets.xml
rename to solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/rangeFacets.xml
diff --git a/solr/core/src/test-files/solr/collection1/conf/schema-analytics.xml b/solr/contrib/analytics/src/test-files/solr/collection1/conf/schema-analytics.xml
similarity index 100%
rename from solr/core/src/test-files/solr/collection1/conf/schema-analytics.xml
rename to solr/contrib/analytics/src/test-files/solr/collection1/conf/schema-analytics.xml
diff --git a/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig-basic.xml b/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig-basic.xml
new file mode 100644
index 00000000000..0d6d1d553bc
--- /dev/null
+++ b/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig-basic.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+ ${tests.luceneMatchVersion:LATEST}
+ ${solr.data.dir:}
+
+
+
+
+
+ query
+ facet
+ analytics
+ highlight
+ debug
+ expand
+
+
+
+
+
+
+
+
diff --git a/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml b/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml
new file mode 100644
index 00000000000..055f3d7faeb
--- /dev/null
+++ b/solr/contrib/analytics/src/test-files/solr/collection1/conf/solrconfig.snippet.randomindexconfig.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+ ${useCompoundFile:false}
+
+ ${solr.tests.maxBufferedDocs}
+ ${solr.tests.maxIndexingThreads}
+ ${solr.tests.ramBufferSizeMB}
+
+
+ ${solr.tests.nrtMode:true}
+
+ 1000
+ 10000
+
+
+ ${solr.tests.lockType:single}
+
diff --git a/solr/core/src/test/org/apache/solr/analytics/AbstractAnalyticsStatsTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/AbstractAnalyticsStatsTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/AbstractAnalyticsStatsTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/AbstractAnalyticsStatsTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/NoFacetTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/NoFacetTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/NoFacetTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/NoFacetTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/expression/ExpressionTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/expression/ExpressionTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/expression/ExpressionTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/expression/ExpressionTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/facet/AbstractAnalyticsFacetTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/AbstractAnalyticsFacetTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/facet/AbstractAnalyticsFacetTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/AbstractAnalyticsFacetTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/facet/FieldFacetExtrasTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/FieldFacetExtrasTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/facet/FieldFacetExtrasTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/FieldFacetExtrasTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/facet/FieldFacetTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/FieldFacetTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/facet/FieldFacetTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/FieldFacetTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/facet/QueryFacetTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/QueryFacetTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/facet/QueryFacetTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/QueryFacetTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/facet/RangeFacetTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/RangeFacetTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/facet/RangeFacetTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/facet/RangeFacetTest.java
diff --git a/solr/core/src/test/org/apache/solr/analytics/util/valuesource/FunctionTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/util/valuesource/FunctionTest.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/analytics/util/valuesource/FunctionTest.java
rename to solr/contrib/analytics/src/test/org/apache/solr/analytics/util/valuesource/FunctionTest.java
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 77b1fd96370..7445b0275af 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -41,7 +41,6 @@ import org.apache.solr.core.DirectoryFactory.DirContext;
import org.apache.solr.handler.SnapPuller;
import org.apache.solr.handler.UpdateRequestHandler;
import org.apache.solr.handler.admin.ShowFileRequestHandler;
-import org.apache.solr.handler.component.AnalyticsComponent;
import org.apache.solr.handler.component.DebugComponent;
import org.apache.solr.handler.component.ExpandComponent;
import org.apache.solr.handler.component.FacetComponent;
@@ -1282,7 +1281,6 @@ public final class SolrCore implements SolrInfoMBean, Closeable {
addIfNotPresent(components,StatsComponent.COMPONENT_NAME,StatsComponent.class);
addIfNotPresent(components,DebugComponent.COMPONENT_NAME,DebugComponent.class);
addIfNotPresent(components,RealTimeGetComponent.COMPONENT_NAME,RealTimeGetComponent.class);
- addIfNotPresent(components,AnalyticsComponent.COMPONENT_NAME,AnalyticsComponent.class);
addIfNotPresent(components,ExpandComponent.COMPONENT_NAME,ExpandComponent.class);
return components;
diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
index ec8a1038d8f..d819b8b27cc 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
@@ -76,7 +76,6 @@ public class SearchHandler extends RequestHandlerBase implements SolrCoreAware ,
names.add( HighlightComponent.COMPONENT_NAME );
names.add( StatsComponent.COMPONENT_NAME );
names.add( DebugComponent.COMPONENT_NAME );
- names.add( AnalyticsComponent.COMPONENT_NAME );
names.add( ExpandComponent.COMPONENT_NAME);
return names;
}