You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2017/07/03 09:36:44 UTC

[04/59] [abbrv] lucene-solr:jira/solr-10878: SOLR-10123: Upgraded the Analytics Component to version 2.0

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/analytics/value/package-info.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/analytics/value/package-info.java b/solr/contrib/analytics/src/java/org/apache/solr/analytics/value/package-info.java
new file mode 100644
index 0000000..247b592
--- /dev/null
+++ b/solr/contrib/analytics/src/java/org/apache/solr/analytics/value/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+/** 
+ * Value types for analytics expressions.
+ */
+package org.apache.solr.analytics.value;
+
+

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java b/solr/contrib/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
new file mode 100644
index 0000000..64eb321
--- /dev/null
+++ b/solr/contrib/analytics/src/java/org/apache/solr/handler/AnalyticsHandler.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.handler;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import org.apache.lucene.search.MatchNoDocsQuery;
+import org.apache.lucene.search.Query;
+import org.apache.solr.analytics.AnalyticsDriver;
+import org.apache.solr.analytics.AnalyticsRequestManager;
+import org.apache.solr.analytics.AnalyticsRequestParser;
+import org.apache.solr.analytics.ExpressionFactory;
+import org.apache.solr.analytics.stream.AnalyticsShardResponseParser;
+import org.apache.solr.client.solrj.io.ModelCache;
+import org.apache.solr.client.solrj.io.SolrClientCache;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.handler.component.AnalyticsComponent;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.response.AnalyticsShardResponseWriter;
+import org.apache.solr.response.AnalyticsShardResponseWriter.AnalyticsResponse;
+import org.apache.solr.response.SolrQueryResponse;
+import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.search.DocSet;
+import org.apache.solr.search.Filter;
+import org.apache.solr.search.QParser;
+import org.apache.solr.search.QParserPlugin;
+import org.apache.solr.search.QueryParsing;
+import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.search.SyntaxError;
+import org.apache.solr.security.AuthorizationContext;
+import org.apache.solr.security.PermissionNameProvider;
+import org.apache.solr.util.plugin.SolrCoreAware;
+
+/**
+ * Handler for Analytics shard requests. This handler should only be called by the {@link AnalyticsComponent}
+ * since the response is written in a bit-stream, formatted by the {@link AnalyticsShardResponseWriter}
+ * that can only be read by the {@link AnalyticsShardResponseParser}.
+ */
+public class AnalyticsHandler extends RequestHandlerBase implements SolrCoreAware, PermissionNameProvider {
+  public static final String NAME = "/analytics";
+  private IndexSchema indexSchema;
+
+  static SolrClientCache clientCache = new SolrClientCache();
+  static ModelCache modelCache = null;
+
+  @Override
+  public PermissionNameProvider.Name getPermissionName(AuthorizationContext request) {
+    return PermissionNameProvider.Name.READ_PERM;
+  }
+
+  @Override
+  public void inform(SolrCore core) {
+    core.registerResponseWriter(AnalyticsShardResponseWriter.NAME, new AnalyticsShardResponseWriter());
+    
+    indexSchema = core.getLatestSchema();
+    AnalyticsRequestParser.init();
+  }
+
+  public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception {
+    try {
+      DocSet docs;
+      try {
+        docs = getDocuments(req);
+      } catch (SyntaxError e) {
+        throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
+      }
+      // The olap-style requests are converted to the current format in the AnalyticsComponent
+      // so the AnalyticsHandler only needs to handle current format requests.
+      AnalyticsRequestManager manager = AnalyticsRequestParser.parse(req.getParams().get(AnalyticsRequestParser.analyticsParamName), 
+                                                                new ExpressionFactory(indexSchema),
+                                                                false);
+      // Collect the reduction data for the request
+      SolrIndexSearcher searcher = req.getSearcher();
+      Filter filter = docs.getTopFilter();
+      AnalyticsDriver.drive(manager, searcher, filter, req);
+      
+      // Do not calculate results, instead export the reduction data for this shard.
+      rsp.addResponse(new AnalyticsResponse(manager));
+    } catch (SolrException e) {
+      rsp.addResponse(new AnalyticsResponse(e));
+    }
+  }
+  
+  /**
+   * Get the documents returned by the query and filter queries included in the request.
+   * 
+   * @param req the request sent to the handler
+   * @return the set of documents matching the query
+   * @throws SyntaxError if there is a syntax error in the queries
+   * @throws IOException if an error occurs while searching the index
+   */
+  private DocSet getDocuments(SolrQueryRequest req) throws SyntaxError, IOException {
+    SolrParams params = req.getParams();
+    ArrayList<Query> queries = new ArrayList<>();
+
+    // Query Param
+    String queryString = params.get( CommonParams.Q );
+    
+    String defType = params.get(QueryParsing.DEFTYPE, QParserPlugin.DEFAULT_QTYPE);
+
+    QParser parser = QParser.getParser(queryString, defType, req);
+    Query query = parser.getQuery();
+    if (query == null) {
+      // normalize a null query to a query that matches nothing
+      query = new MatchNoDocsQuery();
+    }
+    queries.add(query);
+
+    // Filter Params
+    String[] fqs = req.getParams().getParams(CommonParams.FQ);
+    if (fqs!=null) {
+      for (String fq : fqs) {
+        if (fq != null && fq.trim().length()!=0) {
+          QParser fqp = QParser.getParser(fq, req);
+          queries.add(fqp.getQuery());
+        }
+      }
+    }
+    return req.getSearcher().getDocSet(queries);
+  }
+
+  @Override
+  public String getDescription() {
+    return NAME;
+  }
+
+  public String getSource() {
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java b/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
index 505533b..71c6c92 100644
--- a/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
+++ b/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
@@ -18,58 +18,128 @@ package org.apache.solr.handler.component;
 
 import java.io.IOException;
 
-import org.apache.solr.analytics.plugin.AnalyticsStatisticsCollector;
-import org.apache.solr.analytics.request.AnalyticsStats;
-import org.apache.solr.analytics.util.AnalyticsParams;
-import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.metrics.MetricsMap;
-import org.apache.solr.metrics.SolrMetricManager;
-import org.apache.solr.metrics.SolrMetricProducer;
+import org.apache.solr.analytics.AnalyticsDriver;
+import org.apache.solr.analytics.AnalyticsRequestManager;
+import org.apache.solr.analytics.AnalyticsRequestParser;
+import org.apache.solr.analytics.ExpressionFactory;
+import org.apache.solr.analytics.stream.AnalyticsShardRequestManager;
+import org.apache.solr.analytics.util.OldAnalyticsParams;
+import org.apache.solr.analytics.util.OldAnalyticsRequestConverter;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.analytics.util.AnalyticsResponseHeadings;
 
-public class AnalyticsComponent extends SearchComponent implements SolrMetricProducer {
+/**
+ * Computes analytics requests.
+ */
+public class AnalyticsComponent extends SearchComponent {
   public static final String COMPONENT_NAME = "analytics";
-  private final AnalyticsStatisticsCollector analyticsCollector = new AnalyticsStatisticsCollector();;
+  
+  @Override
+  public void init(NamedList args) {
+    AnalyticsRequestParser.init();
+  }
 
   @Override
   public void prepare(ResponseBuilder rb) throws IOException {
-    if (rb.req.getParams().getBool(AnalyticsParams.ANALYTICS,false)) {
-      rb.setNeedDocSet( true );
+    // First check to see if there is an analytics request using the current format
+    String analyticsRequest = rb.req.getParams().get(AnalyticsRequestParser.analyticsParamName);
+    rb._isOlapAnalytics = false;
+    rb.doAnalytics = false;
+    if (analyticsRequest != null) {
+      rb.doAnalytics = true;
+      rb._analyticsRequestManager = AnalyticsRequestParser.parse(analyticsRequest, new ExpressionFactory(rb.req.getSchema()), rb.isDistrib);
+    }
+    // If there is no request in the current format, check for the old olap-style format
+    else if (rb.req.getParams().getBool(OldAnalyticsParams.OLD_ANALYTICS,false)) {
+      rb._analyticsRequestManager = AnalyticsRequestParser.parse(OldAnalyticsRequestConverter.convert(rb.req.getParams()), new ExpressionFactory(rb.req.getSchema()), rb.isDistrib);
+      rb._isOlapAnalytics = true;
+      rb.doAnalytics = true;
+    }
+    
+    if (rb.doAnalytics) {
+      AnalyticsRequestManager reqManager = (AnalyticsRequestManager)rb._analyticsRequestManager;
+      // Check to see if the request is distributed
+      if (rb.isDistrib) {
+        reqManager.sendShards = true;
+        reqManager.shardStream = new AnalyticsShardRequestManager(rb.req.getParams(), reqManager);
+      } else {
+        reqManager.sendShards = false;
+        rb.setNeedDocSet( true );
+      }
     }
   }
 
   @Override
   public void process(ResponseBuilder rb) throws IOException {
-    if (rb.req.getParams().getBool(AnalyticsParams.ANALYTICS,false)) {
-      SolrParams params = rb.req.getParams();
-      AnalyticsStats s = new AnalyticsStats(rb.req, rb.getResults().docSet, params, analyticsCollector);
-      rb.rsp.add( "stats", s.execute() );
+    if (!rb.doAnalytics) {
+      return;
     }
+    AnalyticsRequestManager reqManager = (AnalyticsRequestManager)rb._analyticsRequestManager;
+    // Collect the data and generate a response
+    AnalyticsDriver.drive(reqManager, rb.req.getSearcher(), rb.getResults().docSet.getTopFilter(), rb.req);
+    
+    if (rb._isOlapAnalytics) {
+      rb.rsp.add(AnalyticsResponseHeadings.COMPLETED_OLD_HEADER, reqManager.createOldResponse());
+    } else {
+      rb.rsp.add(AnalyticsResponseHeadings.COMPLETED_HEADER, reqManager.createResponse());
+    }
+
+    rb.doAnalytics = false;
   }
   
-  /*
+  
   @Override
   public int distributedProcess(ResponseBuilder rb) throws IOException {
+    if (!rb.doAnalytics || rb.stage != ResponseBuilder.STAGE_EXECUTE_QUERY) {
+      return ResponseBuilder.STAGE_DONE;
+    }
+    AnalyticsRequestManager reqManager = (AnalyticsRequestManager)rb._analyticsRequestManager;
+    if (!reqManager.sendShards){
+      return ResponseBuilder.STAGE_DONE;
+    }
+    
+    // Send out a request to each shard and merge the responses into our AnalyticsRequestManager
+    reqManager.shardStream.sendRequests(rb.req.getCore().getCoreDescriptor().getCollectionName(),
+        rb.req.getCore().getCoreContainer().getZkController().getZkServerAddress());
+    
+    reqManager.sendShards = false;
+    
     return ResponseBuilder.STAGE_DONE;
   }
   
   @Override
   public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq) {
-    // TODO Auto-generated method stub
+    // We don't want the shard requests to compute analytics, since we send
+    // separate requests for that in distributedProcess() to the AnalyticsHandler
+    sreq.params.remove(AnalyticsRequestParser.analyticsParamName);
+    sreq.params.remove(OldAnalyticsParams.OLD_ANALYTICS);
+    
     super.modifyRequest(rb, who, sreq);
   }
   
   @Override
   public void handleResponses(ResponseBuilder rb, ShardRequest sreq) {
-    // TODO Auto-generated method stub
+    
+    // NO-OP since analytics shard responses are handled through the AnalyticsResponseParser
+    
     super.handleResponses(rb, sreq);
   }
  
   @Override
   public void finishStage(ResponseBuilder rb) {
-    // TODO Auto-generated method stub
+    if (rb.doAnalytics && rb.stage == ResponseBuilder.STAGE_GET_FIELDS) {
+      AnalyticsRequestManager reqManager = (AnalyticsRequestManager)rb._analyticsRequestManager;
+      // Generate responses from the merged shard data
+      if (rb._isOlapAnalytics) {
+        rb.rsp.add(AnalyticsResponseHeadings.COMPLETED_OLD_HEADER, reqManager.createOldResponse());
+      } else {
+        rb.rsp.add(AnalyticsResponseHeadings.COMPLETED_HEADER, reqManager.createResponse());
+      }
+    }
+    
     super.finishStage(rb);
   }
-  */
+  
   
   @Override
   public String getName() {
@@ -81,9 +151,8 @@ public class AnalyticsComponent extends SearchComponent implements SolrMetricPro
     return "Perform analytics";
   }
 
-  @Override
-  public void initializeMetrics(SolrMetricManager manager, String registry, String scope) {
-    MetricsMap metrics = new MetricsMap((detailed, map) -> map.putAll(analyticsCollector.getStatistics()));
-    manager.registerGauge(this, registry, metrics, true, getClass().getSimpleName(), getCategory().toString(), scope);
-  }
+  /*@Override
+  public NamedList getStatistics() {
+    return analyticsCollector.getStatistics();
+  }*/
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/handler/package.html
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/handler/package.html b/solr/contrib/analytics/src/java/org/apache/solr/handler/package.html
new file mode 100644
index 0000000..6a5c2c3
--- /dev/null
+++ b/solr/contrib/analytics/src/java/org/apache/solr/handler/package.html
@@ -0,0 +1,28 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- not a package-info.java, because we already defined this package in core/ -->
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<body>
+<p>
+Handler for distributed analytics requests to shards.
+</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/response/AnalyticsShardResponseWriter.java
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/response/AnalyticsShardResponseWriter.java b/solr/contrib/analytics/src/java/org/apache/solr/response/AnalyticsShardResponseWriter.java
new file mode 100644
index 0000000..52c71ee
--- /dev/null
+++ b/solr/contrib/analytics/src/java/org/apache/solr/response/AnalyticsShardResponseWriter.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.response;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.io.Writer;
+
+import org.apache.solr.analytics.AnalyticsRequestManager;
+import org.apache.solr.analytics.stream.AnalyticsShardResponseParser;
+import org.apache.solr.client.solrj.impl.BinaryResponseParser;
+import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.request.SolrQueryRequest;
+
+/**
+ * Writes the reduction data of a analytics shard request to a bit-stream to send to the originating shard.
+ * The response must be parsed by the {@link AnalyticsShardResponseParser} initialized with the same analytics request
+ * as the shard request was sent.
+ */
+public class AnalyticsShardResponseWriter implements BinaryQueryResponseWriter {
+  public static final String NAME = "analytics_shard_stream";
+  public static final String ANALYTICS_MANGER = "analyticsManager";
+
+  @Override
+  public void write(OutputStream out, SolrQueryRequest req, SolrQueryResponse response) throws IOException {
+    ((AnalyticsResponse)response.getResponse()).write(new DataOutputStream(out));;
+  }
+
+  @Override
+  public void write(Writer writer, SolrQueryRequest request, SolrQueryResponse response) throws IOException {
+    throw new RuntimeException("This is a binary writer , Cannot write to a characterstream");
+  }
+
+  @Override
+  public String getContentType(SolrQueryRequest request, SolrQueryResponse response) {
+    return BinaryResponseParser.BINARY_CONTENT_TYPE;
+  }
+
+  @Override
+  public void init(NamedList args) {}
+  
+  /**
+   * Manages the streaming of analytics reduction data if no exception occurred.
+   * Otherwise the exception is streamed over.
+   */
+  public static class AnalyticsResponse {
+    private final AnalyticsRequestManager manager;
+    private final SolrException exception;
+    
+    private final boolean requestSuccessful;
+    
+    public AnalyticsResponse(AnalyticsRequestManager manager) {
+      this.manager = manager;
+      this.exception = null;
+      this.requestSuccessful = true;
+    }
+    
+    public AnalyticsResponse(SolrException exception) {
+      this.manager = null;
+      this.exception = exception;
+      this.requestSuccessful = false;
+    }
+    
+    public void write(DataOutputStream output) throws IOException {
+      output.writeBoolean(requestSuccessful);
+      if (requestSuccessful) {
+        manager.exportShardData(output);
+      } else {
+        new ObjectOutputStream(output).writeObject(exception);
+      }
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/java/org/apache/solr/response/package.html
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/response/package.html b/solr/contrib/analytics/src/java/org/apache/solr/response/package.html
new file mode 100644
index 0000000..dd24f82
--- /dev/null
+++ b/solr/contrib/analytics/src/java/org/apache/solr/response/package.html
@@ -0,0 +1,28 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!-- not a package-info.java, because we already defined this package in core/ -->
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<body>
+<p>
+Response Writer for distributed analytics response from a shard.
+</p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt
deleted file mode 100644
index 329d32d..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/expressions.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-o.ar.s.sum=sum(int_id)
-o.ar.s.unique=unique(long_ld)
-o.ar.s.su=add(sum(int_id),unique(long_ld))
-o.ar.s.mean=mean(int_id)
-o.ar.s.count=count(long_ld)
-o.ar.s.median=median(int_id)
-o.ar.s.mcm=add(mean(int_id),count(long_ld),median(int_id))
-
-o.mr.s.sum=sum(int_id)
-o.mr.s.unique=unique(long_ld)
-o.mr.s.su=mult(sum(int_id),unique(long_ld))
-o.mr.s.mean=mean(int_id)
-o.mr.s.count=count(long_ld)
-o.mr.s.median=median(int_id)
-o.mr.s.mcm=mult(mean(int_id),count(long_ld),median(int_id))
-
-o.dr.s.sum=sum(int_id)
-o.dr.s.unique=unique(long_ld)
-o.dr.s.su=div(sum(int_id),unique(long_ld))
-o.dr.s.mean=mean(int_id)
-o.dr.s.count=count(long_ld)
-o.dr.s.mc=div(mean(int_id),count(long_ld))
-
-o.pr.s.sum=sum(int_id)
-o.pr.s.unique=unique(long_ld)
-o.pr.s.su=pow(sum(int_id),unique(long_ld))
-o.pr.s.mean=mean(int_id)
-o.pr.s.count=count(long_ld)
-o.pr.s.mc=pow(mean(int_id),count(long_ld))
-
-o.nr.s.sum=sum(int_id)
-o.nr.s.s=neg(sum(int_id))
-o.nr.s.count=count(long_ld)
-o.nr.s.c=neg(count(long_ld))
-
-o.avr.s.sum=sum(int_id)
-o.avr.s.s=abs(neg(sum(int_id)))
-o.avr.s.count=count(long_ld)
-o.avr.s.c=abs(neg(count(long_ld)))
-
-o.cnr.s.c8=const_num(8)
-o.cnr.s.c10=const_num(10)
-
-o.dmr.s.median=median(date_dtd)
-o.dmr.s.cme=const_str(+2YEARS)
-o.dmr.s.dmme=date_math(median(date_dtd),const_str(+2YEARS))
-o.dmr.s.max=max(date_dtd)
-o.dmr.s.cma=const_str(+2MONTHS)
-o.dmr.s.dmma=date_math(max(date_dtd),const_str(+2MONTHS))
-
-o.cdr.s.cd1=const_date(1800-12-31T23:59:59Z)
-o.cdr.s.cs1=const_str(1800-12-31T23:59:59Z)
-o.cdr.s.cd2=const_date(1804-06-30T23:59:59Z)
-o.cdr.s.cs2=const_str(1804-06-30T23:59:59Z)
-
-o.csr.s.cs1=const_str(this is the first)
-o.csr.s.cs2=const_str(this is the second)
-o.csr.s.cs3=const_str(this is the third)
-
-o.cr.s.csmin=const_str(this is the first)
-o.cr.s.min=min(string_sd)
-o.cr.s.ccmin=concat(const_str(this is the first),min(string_sd))
-o.cr.s.csmax=const_str(this is the second)
-o.cr.s.max=max(string_sd)
-o.cr.s.ccmax=concat(const_str(this is the second),max(string_sd))
-
-o.rr.s.min=min(string_sd)
-o.rr.s.rmin=rev(min(string_sd))
-o.rr.s.max=max(string_sd)
-o.rr.s.rmax=rev(max(string_sd))

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
deleted file mode 100644
index 3979f57..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacetExtras.txt
+++ /dev/null
@@ -1,66 +0,0 @@
-o.sr.s.mean=mean(int_id)
-o.sr.s.median=median(int_id)
-o.sr.s.count=count(int_id)
-o.sr.s.percentile_20=percentile(20,int_id)
-o.sr.ff=long_ld
-o.sr.ff.long_ld.ss=mean
-o.sr.ff.long_ld.sd=asc
-o.sr.ff=float_fd
-o.sr.ff.float_fd.ss=median
-o.sr.ff.float_fd.sd=desc
-o.sr.ff=double_dd
-o.sr.ff.double_dd.ss=count
-o.sr.ff.double_dd.sd=asc
-o.sr.ff=string_sd
-o.sr.ff.string_sd.ss=percentile_20
-o.sr.ff.string_sd.sd=desc
-
-o.lr.s.mean=mean(int_id)
-o.lr.s.median=median(int_id)
-o.lr.s.count=count(int_id)
-o.lr.s.percentile_20=percentile(20,int_id)
-o.lr.ff=long_ld
-o.lr.ff.long_ld.ss=mean
-o.lr.ff.long_ld.sd=asc
-o.lr.ff.long_ld.limit=5
-o.lr.ff=float_fd
-o.lr.ff.float_fd.ss=median
-o.lr.ff.float_fd.sd=desc
-o.lr.ff.float_fd.limit=3
-o.lr.ff=double_dd
-o.lr.ff.double_dd.ss=count
-o.lr.ff.double_dd.sd=asc
-o.lr.ff.double_dd.limit=7
-o.lr.ff=string_sd
-o.lr.ff.string_sd.ss=percentile_20
-o.lr.ff.string_sd.sd=desc
-o.lr.ff.string_sd.limit=1
-
-
-
-o.offAll.s.mean=mean(int_id)
-o.offAll.ff=long_ld
-o.offAll.ff.long_ld.ss=mean
-o.offAll.ff.long_ld.sd=asc
-o.offAll.ff.long_ld.limit=7
-
-o.off0.s.mean=mean(int_id)
-o.off0.ff=long_ld
-o.off0.ff.long_ld.ss=mean
-o.off0.ff.long_ld.sd=asc
-o.off0.ff.long_ld.limit=2
-o.off0.ff.long_ld.offset=0
-
-o.off1.s.mean=mean(int_id)
-o.off1.ff=long_ld
-o.off1.ff.long_ld.ss=mean
-o.off1.ff.long_ld.sd=asc
-o.off1.ff.long_ld.limit=2
-o.off1.ff.long_ld.offset=2
-
-o.off2.s.mean=mean(int_id)
-o.off2.ff=long_ld
-o.off2.ff.long_ld.ss=mean
-o.off2.ff.long_ld.sd=asc
-o.off2.ff.long_ld.limit=3
-o.off2.ff.long_ld.offset=4

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt
deleted file mode 100644
index 5ba5953..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/fieldFacets.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-o.sum.s.int=sum(int_id)
-o.sum.s.long=sum(long_ld)
-o.sum.s.float=sum(float_fd)
-o.sum.s.double=sum(double_dd)
-o.sum.ff=string_sd
-o.sum.ff=date_dtd
-
-o.mean.s.int=mean(int_id)
-o.mean.s.long=mean(long_ld)
-o.mean.s.float=mean(float_fd)
-o.mean.s.double=mean(double_dd)
-o.mean.ff=string_sd
-o.mean.ff=date_dtd
-
-o.sumOfSquares.s.int=sumofsquares(int_id)
-o.sumOfSquares.s.long=sumofsquares(long_ld)
-o.sumOfSquares.s.float=sumofsquares(float_fd)
-o.sumOfSquares.s.double=sumofsquares(double_dd)
-o.sumOfSquares.ff=string_sd
-o.sumOfSquares.ff=date_dtd
-
-o.stddev.s.int=stddev(int_id)
-o.stddev.s.long=stddev(long_ld)
-o.stddev.s.float=stddev(float_fd)
-o.stddev.s.double=stddev(double_dd)
-o.stddev.ff=string_sd
-o.stddev.ff=date_dtd
-
-o.median.s.int=median(int_id)
-o.median.s.long=median(long_ld)
-o.median.s.float=median(float_fd)
-o.median.s.double=median(double_dd)
-o.median.ff=string_sd
-o.median.ff=date_dtd
-
-o.percentile_20n.s.int=percentile(20,int_id)
-o.percentile_20n.s.long=percentile(20,long_ld)
-o.percentile_20n.s.float=percentile(20,float_fd)
-o.percentile_20n.s.double=percentile(20,double_dd)
-o.percentile_20n.ff=string_sd
-o.percentile_20n.ff=date_dtd
-
-o.percentile_20.s.str=percentile(20,string_sd)
-o.percentile_20.s.date=percentile(20,date_dtd)
-o.percentile_20.ff=int_id
-o.percentile_20.ff=long_ld
-
-o.percentile_60n.s.int=percentile(60,int_id)
-o.percentile_60n.s.long=percentile(60,long_ld)
-o.percentile_60n.s.float=percentile(60,float_fd)
-o.percentile_60n.s.double=percentile(60,double_dd)
-o.percentile_60n.ff=string_sd
-o.percentile_60n.ff=date_dtd
-
-o.percentile_60.s.str=percentile(60,string_sd)
-o.percentile_60.s.date=percentile(60,date_dtd)
-o.percentile_60.ff=int_id
-o.percentile_60.ff=long_ld
-
-o.minn.s.int=min(int_id)
-o.minn.s.long=min(long_ld)
-o.minn.s.float=min(float_fd)
-o.minn.s.double=min(double_dd)
-o.minn.ff=string_sd
-o.minn.ff=date_dtd
-
-o.min.s.str=min(string_sd)
-o.min.s.date=min(date_dtd)
-o.min.ff=int_id
-o.min.ff=long_ld
-
-o.maxn.s.int=max(int_id)
-o.maxn.s.long=max(long_ld)
-o.maxn.s.float=max(float_fd)
-o.maxn.s.double=max(double_dd)
-o.maxn.ff=string_sd
-o.maxn.ff=date_dtd
-
-o.max.s.str=max(string_sd)
-o.max.s.date=max(date_dtd)
-o.max.ff=int_id
-o.max.ff=long_ld
-
-o.countn.s.int=count(int_id)
-o.countn.s.long=count(long_ld)
-o.countn.s.float=count(float_fd)
-o.countn.s.double=count(double_dd)
-o.countn.ff=string_sd
-o.countn.ff=date_dtd
-
-o.count.s.str=count(string_sd)
-o.count.s.date=count(date_dtd)
-o.count.ff=int_id
-o.count.ff=long_ld
-
-o.uniquen.s.int=unique(int_id)
-o.uniquen.s.long=unique(long_ld)
-o.uniquen.s.float=unique(float_fd)
-o.uniquen.s.double=unique(double_dd)
-o.uniquen.ff=string_sd
-o.uniquen.ff=date_dtd
-
-o.unique.s.str=unique(string_sd)
-o.unique.s.date=unique(date_dtd)
-o.unique.ff=int_id
-o.unique.ff=long_ld
-
-o.missingn.s.int=missing(int_id)
-o.missingn.s.long=missing(long_ld)
-o.missingn.s.float=missing(float_fd)
-o.missingn.s.double=missing(double_dd)
-o.missingn.ff=string_sd
-o.missingn.ff=date_dtd
-
-o.missing.s.str=missing(string_sd)
-o.missing.s.date=missing(date_dtd)
-o.missing.ff=int_id
-o.missing.ff=long_ld
-
-o.multivalued.s.mean=mean(int_id)
-o.multivalued.ff=long_ldm
-o.multivalued.ff=string_sdm
-o.multivalued.ff=date_dtdm
-
-o.missingf.s.mean=mean(int_id)
-o.missingf.ff=date_dtd
-o.missingf.ff.date_dtd.dim=true
-o.missingf.ff=string_sd
-o.missingf.ff.string_sd.dim=true
-o.missingf.ff.string_sd.sm=true
-o.missingf.ff=date_dtdm
-o.missingf.ff.date_dtdm.sm=true

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt
deleted file mode 100644
index e4930b6..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/functions.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-o.ar.s.sum=sum(add(int_id,float_fd))
-o.ar.s.sumc=sum(add_if_dd)
-o.ar.s.mean=mean(add(long_ld,double_dd,float_fd))
-o.ar.s.meanc=mean(add_ldf_dd)
-
-o.mr.s.sum=sum(mult(int_id,float_fd))
-o.mr.s.sumc=sum(mult_if_dd)
-o.mr.s.mean=mean(mult(long_ld,double_dd,float_fd))
-o.mr.s.meanc=mean(mult_ldf_dd)
-
-o.dr.s.sum=sum(div(int_id,float_fd))
-o.dr.s.sumc=sum(div_if_dd)
-o.dr.s.mean=mean(div(long_ld,double_dd))
-o.dr.s.meanc=mean(div_ld_dd)
-
-o.pr.s.sum=sum(pow(int_id,float_fd))
-o.pr.s.sumc=sum(pow_if_dd)
-o.pr.s.mean=mean(pow(long_ld,double_dd))
-o.pr.s.meanc=mean(pow_ld_dd)
-
-o.nr.s.sum=sum(neg(int_id))
-o.nr.s.sumc=sum(neg_i_dd)
-o.nr.s.mean=mean(neg(long_ld))
-o.nr.s.meanc=mean(neg_l_dd)
-
-o.avr.s.sum=sum(abs(neg(int_id)))
-o.avr.s.sumc=sum(int_id)
-o.avr.s.mean=mean(abs(neg(int_id)))
-o.avr.s.meanc=mean(int_id)
-
-o.cnr.s.sum=sum(const_num(8))
-o.cnr.s.sumc=sum(const_8_dd)
-o.cnr.s.mean=mean(const_num(10))
-o.cnr.s.meanc=mean(const_10_dd)
-
-o.dmr.s.median=median(date_math(date_dtd,const_str(+2YEARS)))
-o.dmr.s.medianc=median(dm_2y_dtd)
-o.dmr.s.max=max(date_math(date_dtd,const_str(+2MONTHS)))
-o.dmr.s.maxc=max(dm_2m_dtd)
-
-o.cdr.s.median=median(const_date(1800-06-30T23:59:59Z))
-o.cdr.s.medianc=median(const_00_dtd)
-o.cdr.s.max=max(const_date(1804-06-30T23:59:59Z))
-o.cdr.s.maxc=max(const_04_dtd)
-
-o.csr.s.min=min(const_str(this is the first))
-o.csr.s.minc=min(const_first_sd)
-o.csr.s.max=max(const_str(this is the second))
-o.csr.s.maxc=max(const_second_sd)
-
-o.cr.s.min=min(concat(const_str(this is the first),string_sd))
-o.cr.s.minc=min(concat_first_sd)
-o.cr.s.max=max(concat(const_str(this is the second),string_sd))
-o.cr.s.maxc=max(concat_second_sd)
-
-o.rr.s.min=min(rev(string_sd))
-o.rr.s.minc=min(rev_sd)
-o.rr.s.max=max(rev(string_sd))
-o.rr.s.maxc=max(rev_sd)
-
-o.ms.s.min=min(miss_dd)
-o.ms.s.max=max(miss_dd)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt
deleted file mode 100644
index b3d9163..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/noFacets.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-o.sr.s.int_id=sum(int_i)
-o.sr.s.long_ld=sum(long_l)
-o.sr.s.float_fd=sum(float_f)
-o.sr.s.double_dd=sum(double_d)
-
-o.sosr.s.int_id=sumofsquares(int_id)
-o.sosr.s.long_ld=sumofsquares(long_ld)
-o.sosr.s.float_fd=sumofsquares(float_fd)
-o.sosr.s.double_dd=sumofsquares(double_dd)
-
-o.mr.s.int_id=mean(int_id)
-o.mr.s.long_ld=mean(long_ld)
-o.mr.s.float_fd=mean(float_fd)
-o.mr.s.double_dd=mean(double_dd)
-
-o.str.s.int_id=stddev(int_id)
-o.str.s.long_ld=stddev(long_ld)
-o.str.s.float_fd=stddev(float_fd)
-o.str.s.double_dd=stddev(double_dd)
-
-o.medr.s.int_id=median(int_id)
-o.medr.s.long_ld=median(long_ld)
-o.medr.s.float_fd=median(float_fd)
-o.medr.s.double_dd=median(double_dd)
-o.medr.s.date_dtd=median(date_dtd)
-
-o.p2r.s.int_id=percentile(20,int_id)
-o.p2r.s.long_ld=percentile(20,long_ld)
-o.p2r.s.float_fd=percentile(20,float_fd)
-o.p2r.s.double_dd=percentile(20,double_dd)
-o.p2r.s.date_dtd=percentile(20,date_dtd)
-o.p2r.s.string_sd=percentile(20,string_sd)
-
-o.p6r.s.int_id=percentile(60,int_id)
-o.p6r.s.long_ld=percentile(60,long_ld)
-o.p6r.s.float_fd=percentile(60,float_fd)
-o.p6r.s.double_dd=percentile(60,double_dd)
-o.p6r.s.date_dtd=percentile(60,date_dtd)
-o.p6r.s.string_sd=percentile(60,string_sd)
-
-o.mir.s.int_id=min(int_id)
-o.mir.s.long_ld=min(long_ld)
-o.mir.s.float_fd=min(float_fd)
-o.mir.s.double_dd=min(double_dd)
-o.mir.s.date_dtd=min(date_dtd)
-o.mir.s.string_sd=min(string_sd)
-
-o.mar.s.int_id=max(int_id)
-o.mar.s.long_ld=max(long_ld)
-o.mar.s.float_fd=max(float_fd)
-o.mar.s.double_dd=max(double_dd)
-o.mar.s.date_dtd=max(date_dtd)
-o.mar.s.string_sd=max(string_sd)
-
-o.cr.s.int_id=count(int_id)
-o.cr.s.long_ld=count(long_ld)
-o.cr.s.float_fd=count(float_fd)
-o.cr.s.double_dd=count(double_dd)
-o.cr.s.date_dtd=count(date_dtd)
-o.cr.s.string_sd=count(string_sd)
-
-o.ur.s.int_id=unique(int_id)
-o.ur.s.long_ld=unique(long_ld)
-o.ur.s.float_fd=unique(float_fd)
-o.ur.s.double_dd=unique(double_dd)
-o.ur.s.date_dtd=unique(date_dtd)
-o.ur.s.string_sd=unique(string_sd)
-
-o.misr.s.int_id=missing(int_id)
-o.misr.s.long_ld=missing(long_ld)
-o.misr.s.float_fd=missing(float_fd)
-o.misr.s.double_dd=missing(double_dd)
-o.misr.s.date_dtd=missing(date_dtd)
-o.misr.s.string_sd=missing(string_sd)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt
deleted file mode 100644
index 6be4a4e..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/queryFacets.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-o.ir.s.sum=sum(int_id)
-o.ir.s.mean=mean(int_id)
-o.ir.s.median=median(int_id)
-o.ir.s.percentile_8=percentile(8,int_id)
-o.ir.ff=string_sd
-o.ir.ff.string_sd.h=true
-o.ir.qf=float1
-o.ir.qf.float1.q=float_fd:[* TO 50]
-o.ir.qf=float2
-o.ir.qf.float2.q=float_fd:[* TO 30]
-
-o.pr.s.sum=sum(int_id)
-o.pr.s.mean=mean(int_id)
-o.pr.s.median=median(int_id)
-o.pr.s.q1=concat(const_str(float_fd:[), percentile(10,int_id), const_str( TO ), median(int_id), const_str(]))
-o.pr.hs.q2=concat(const_str(float_fd:[), percentile(30,int_id), const_str( TO ), median(int_id), const_str(]))
-o.pr.hs.q3=concat(const_str(float_fd:[), percentile(40,int_id), const_str( TO ), median(int_id), const_str(]))
-o.pr.s.percentile_8=percentile(8,int_id)
-o.pr.ff=string_sd
-o.pr.ff.string_sd.h=true
-o.pr.qf=float3
-o.pr.qf.float3.q=result(q1)
-o.pr.qf.float3.q=result(q2)
-o.pr.qf.float3.q=result(q3)
-o.pr.qf.float3.q=result(q1,string_sd,abc2)
-o.pr.qf=float4
-o.pr.qf.float4.d=float3
-o.pr.qf.float4.q=qresult(q1,float3,result(q1))
-
-o.lr.s.sum=sum(long_ld)
-o.lr.s.mean=mean(long_ld)
-o.lr.s.median=median(long_ld)
-o.lr.s.percentile_8=percentile(8,long_ld)
-o.lr.qf=string
-o.lr.qf.string.q=string_sd:abc1
-o.lr.qf.string.q=string_sd:abc2
-
-o.fr.s.sum=sum(float_fd)
-o.fr.s.mean=mean(float_fd)
-o.fr.s.median=median(float_fd)
-o.fr.s.percentile_8=percentile(8,float_fd)
-o.fr.qf=lad
-o.fr.qf.lad.q=long_ld:[20 TO *]
-o.fr.qf.lad.q=long_ld:[30 TO *]
-o.fr.qf.lad.q=double_dd:[* TO 50]

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt b/solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt
deleted file mode 100644
index cbfe052..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestFiles/rangeFacets.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-o.ri.s.sum=sum(int_id)
-o.ri.s.mean=mean(int_id)
-o.ri.s.median=median(int_id)
-o.ri.s.count=count(int_id)
-o.ri.s.sumOfSquares=sumofsquares(int_id)
-o.ri.rf=long_ld
-o.ri.rf.long_ld.st=5
-o.ri.rf.long_ld.e=30
-o.ri.rf.long_ld.g=5
-o.ri.rf.long_ld.ib=lower
-o.ri.rf.long_ld.or=all
-o.ri.rf=double_dd
-o.ri.rf.double_dd.st=3
-o.ri.rf.double_dd.e=39
-o.ri.rf.double_dd.g=7
-o.ri.rf.double_dd.ib=upper
-o.ri.rf.double_dd.ib=outer
-o.ri.rf.double_dd.or=all
-o.ri.rf=date_dtd
-o.ri.rf.date_dtd.st=1007-01-01T23:59:59Z
-o.ri.rf.date_dtd.e=1044-01-01T23:59:59Z
-o.ri.rf.date_dtd.g=+7YEARS
-o.ri.rf.date_dtd.ib=lower
-o.ri.rf.date_dtd.ib=edge
-o.ri.rf.date_dtd.ib=outer
-o.ri.rf.date_dtd.or=all
-
-o.rf.s.sum=sum(float_fd)
-o.rf.s.mean=mean(float_fd)
-o.rf.s.median=median(float_fd)
-o.rf.s.count=count(float_fd)
-o.rf.s.sumOfSquares=sumofsquares(float_fd)
-o.rf.rf=long_ld
-o.rf.rf.long_ld.st=0
-o.rf.rf.long_ld.e=29
-o.rf.rf.long_ld.g=4
-o.rf.rf.long_ld.ib=all
-o.rf.rf.long_ld.or=all
-o.rf.rf=double_dd
-o.rf.rf.double_dd.st=4
-o.rf.rf.double_dd.e=47
-o.rf.rf.double_dd.g=11
-o.rf.rf.double_dd.ib=edge
-o.rf.rf.double_dd.or=all
-o.rf.rf=date_dtd
-o.rf.rf.date_dtd.st=1004-01-01T23:59:59Z
-o.rf.rf.date_dtd.e=1046-01-01T23:59:59Z
-o.rf.rf.date_dtd.g=+5YEARS
-o.rf.rf.date_dtd.ib=upper
-o.rf.rf.date_dtd.ib=edge
-o.rf.rf.date_dtd.or=all
-
-o.hi.s.sum=sum(int_id)
-o.hi.s.mean=mean(int_id)
-o.hi.s.median=median(int_id)
-o.hi.s.count=count(int_id)
-o.hi.s.sumOfSquares=sumofsquares(int_id)
-o.hi.rf=long_ld
-o.hi.rf.long_ld.st=5
-o.hi.rf.long_ld.e=30
-o.hi.rf.long_ld.g=5
-o.hi.rf.long_ld.he=true
-o.hi.rf.long_ld.ib=lower
-o.hi.rf.long_ld.or=all
-o.hi.rf=double_dd
-o.hi.rf.double_dd.st=3
-o.hi.rf.double_dd.e=39
-o.hi.rf.double_dd.g=7
-o.hi.rf.double_dd.he=true
-o.hi.rf.double_dd.ib=upper
-o.hi.rf.double_dd.ib=outer
-o.hi.rf.double_dd.or=all
-o.hi.rf=date_dtd
-o.hi.rf.date_dtd.st=1007-01-01T23:59:59Z
-o.hi.rf.date_dtd.e=1044-01-01T23:59:59Z
-o.hi.rf.date_dtd.g=+7YEARS
-o.hi.rf.date_dtd.he=true
-o.hi.rf.date_dtd.ib=lower
-o.hi.rf.date_dtd.ib=edge
-o.hi.rf.date_dtd.ib=outer
-o.hi.rf.date_dtd.or=all
-
-o.hf.s.sum=sum(float_fd)
-o.hf.s.mean=mean(float_fd)
-o.hf.s.median=median(float_fd)
-o.hf.s.count=count(float_fd)
-o.hf.s.sumOfSquares=sumofsquares(float_fd)
-o.hf.rf=long_ld
-o.hf.rf.long_ld.st=0
-o.hf.rf.long_ld.e=29
-o.hf.rf.long_ld.g=4
-o.hf.rf.long_ld.he=true
-o.hf.rf.long_ld.ib=all
-o.hf.rf.long_ld.or=all
-o.hf.rf=double_dd
-o.hf.rf.double_dd.st=4
-o.hf.rf.double_dd.e=47
-o.hf.rf.double_dd.g=11
-o.hf.rf.double_dd.he=true
-o.hf.rf.double_dd.ib=edge
-o.hf.rf.double_dd.or=all
-o.hf.rf=date_dtd
-o.hf.rf.date_dtd.st=1004-01-01T23:59:59Z
-o.hf.rf.date_dtd.e=1046-01-01T23:59:59Z
-o.hf.rf.date_dtd.g=+5YEARS
-o.hf.rf.date_dtd.he=true
-o.hf.rf.date_dtd.ib=upper
-o.hf.rf.date_dtd.ib=edge
-o.hf.rf.date_dtd.or=all
-
-o.mi.s.sum=sum(int_id)
-o.mi.s.mean=mean(int_id)
-o.mi.s.median=median(int_id)
-o.mi.s.count=count(int_id)
-o.mi.s.sumOfSquares=sumofsquares(int_id)
-o.mi.rf=long_ld
-o.mi.rf.long_ld.st=5
-o.mi.rf.long_ld.e=30
-o.mi.rf.long_ld.g=4,2,6,3
-o.mi.rf.long_ld.ib=lower
-o.mi.rf.long_ld.or=all
-o.mi.rf=double_dd
-o.mi.rf.double_dd.st=3
-o.mi.rf.double_dd.e=39
-o.mi.rf.double_dd.g=3,1,7
-o.mi.rf.double_dd.ib=upper
-o.mi.rf.double_dd.ib=outer
-o.mi.rf.double_dd.or=all
-o.mi.rf=date_dtd
-o.mi.rf.date_dtd.st=1007-01-01T23:59:59Z
-o.mi.rf.date_dtd.e=1044-01-01T23:59:59Z
-o.mi.rf.date_dtd.g=+2YEARS,+7YEARS
-o.mi.rf.date_dtd.ib=lower
-o.mi.rf.date_dtd.ib=edge
-o.mi.rf.date_dtd.ib=outer
-o.mi.rf.date_dtd.or=all
-
-o.mf.s.sum=sum(float_fd)
-o.mf.s.mean=mean(float_fd)
-o.mf.s.median=median(float_fd)
-o.mf.s.count=count(float_fd)
-o.mf.s.sumOfSquares=sumofsquares(float_fd)
-o.mf.rf=long_ld
-o.mf.rf.long_ld.st=0
-o.mf.rf.long_ld.e=29
-o.mf.rf.long_ld.g=1,4
-o.mf.rf.long_ld.ib=all
-o.mf.rf.long_ld.or=all
-o.mf.rf=double_dd
-o.mf.rf.double_dd.st=4
-o.mf.rf.double_dd.e=47
-o.mf.rf.double_dd.g=2,3,11
-o.mf.rf.double_dd.ib=edge
-o.mf.rf.double_dd.or=all
-o.mf.rf=date_dtd
-o.mf.rf.date_dtd.st=1004-01-01T23:59:59Z
-o.mf.rf.date_dtd.e=1046-01-01T23:59:59Z
-o.mf.rf.date_dtd.g=+4YEARS,+5YEARS
-o.mf.rf.date_dtd.ib=upper
-o.mf.rf.date_dtd.ib=edge
-o.mf.rf.date_dtd.or=all
-
-o.pf.s.mean=mean(float_fd)
-o.pf.hs.min=min(date_dtd)
-o.pf.hs.max=max(date_dtd)
-o.pf.hs.gap=const_str(+5YEARS)
-o.pf.rf=date_dtd
-o.pf.rf.date_dtd.st=result(min)
-o.pf.rf.date_dtd.e=result(max)
-o.pf.rf.date_dtd.g=result(gap)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml
deleted file mode 100644
index 2ce8abf..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/expressions.xml
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>Add Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>unique</name>
-     </statistic>
-     <statistic>
-       <expression>add(sum(int(int_id)),unique(long(long_ld)))</expression>
-       <name>add sum and unique</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>add(mean(int(int_id)),count(long(long_ld)),median(int(int_id)))</expression>
-       <name>add mean and count and median</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Multiply Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>unique</name>
-     </statistic>
-     <statistic>
-       <expression>mult(sum(int(int_id)),unique(long(long_ld)))</expression>
-       <name>multiply sum and unique</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>mult(mean(int(int_id)),count(long(long_ld)),median(int(int_id)))</expression>
-       <name>multiply mean and count and median</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Divide Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>unique</name>
-     </statistic>
-     <statistic>
-       <expression>div(sum(int(int_id)),unique(long(long_ld)))</expression>
-       <name>divide sum by unique</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>div(mean(int(int_id)),count(long(long_ld)))</expression>
-       <name>divide mean by count</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Power Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>unique</name>
-     </statistic>
-     <statistic>
-       <expression>pow(sum(int(int_id)),unique(long(long_ld)))</expression>
-       <name>power sum by unique</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>pow(mean(int(int_id)),count(long(long_ld)))</expression>
-       <name>power mean by count</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Negate Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>neg(sum(int(int_id)))</expression>
-       <name>negate of sum</name>
-     </statistic>
-     
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>neg(count(long(long_ld)))</expression>
-       <name>negate of count</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Const Num Request</name>
-     
-     <statistic>
-       <expression>const_num(8)</expression>
-       <name>constant 8</name>
-     </statistic>
-     <statistic>
-       <expression>const_num(10)</expression>
-       <name>constant 10</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Date Math Request</name>
-     
-     <statistic>
-       <expression>median(date(date_dtd))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>const_str(+2YEARS)</expression>
-       <name>constant str median</name>
-     </statistic>
-     <statistic>
-       <expression>date_math(median(date(date_dtd)),const_str(+2YEARS))</expression>
-       <name>date math median</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(date(date_dtd))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>const_str(+2MONTHS)</expression>
-       <name>constant str max</name>
-     </statistic>
-     <statistic>
-       <expression>date_math(max(date(date_dtd)),const_str(+2MONTHS))</expression>
-       <name>date math max</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Constant Date Request</name>
-     
-     <statistic>
-       <expression>const_str(1800-12-31T23:59:59Z)</expression>
-       <name>const str 1</name>
-     </statistic>
-     <statistic>
-       <expression>const_date(1800-12-31T23:59:59Z)</expression>
-       <name>const date 1</name>
-     </statistic>
-     <statistic>
-       <expression>const_str(1804-06-30T23:59:59Z)</expression>
-       <name>const str 2</name>
-     </statistic>
-     <statistic>
-       <expression>const_date(1804-06-30T23:59:59Z)</expression>
-       <name>const date 2</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Constant String Request</name>
-     
-     <statistic>
-       <expression>const_str(this is the first)</expression>
-       <name>const str 1</name>
-     </statistic>
-     <statistic>
-       <expression>const_str(this is the second)</expression>
-       <name>const str 2</name>
-     </statistic>
-     <statistic>
-       <expression>const_str(this is the third)</expression>
-       <name>const str 3</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Concatenate Request</name>
-     
-     <statistic>
-       <expression>const_str(this is the first)</expression>
-       <name>const str min</name>
-     </statistic>
-     <statistic>
-       <expression>min(str(string_sd))</expression>
-       <name>min</name>
-     </statistic>
-     <statistic>
-       <expression>concat(const_str(this is the first),min(str(string_sd)))</expression>
-       <name>concat const and min</name>
-     </statistic>
-     
-     <statistic>
-       <expression>const_str(this is the second)</expression>
-       <name>const str max</name>
-     </statistic>
-     <statistic>
-       <expression>max(str(string_sd))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>concat(const_str(this is the second),max(str(string_sd)))</expression>
-       <name>concat const and max</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Reverse Request</name>
-     
-     <statistic>
-       <expression>min(str(string_sd))</expression>
-       <name>min</name>
-     </statistic>
-     <statistic>
-       <expression>rev(min(str(string_sd)))</expression>
-       <name>reverse min</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(str(string_sd))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>rev(max(str(string_sd)))</expression>
-       <name>reverse max</name>
-     </statistic>
-   </analyticsRequest>
-</analyticsRequestEnvelope> 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
deleted file mode 100644
index 68b5be9..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacetExtras.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>sort request</name>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>count(int(int_id))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,int(int_id))</expression>
-       <name>perc_20</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>long_ld</field>
-       <sortSpecification>
-         <statName>mean</statName>
-         <direction>asc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet>
-       <field>float_fd</field>
-       <sortSpecification>
-         <statName>median</statName>
-         <direction>desc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet>
-       <field>double_dd</field>
-       <sortSpecification>
-         <statName>count</statName>
-         <direction>asc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet>
-       <field>string_sd</field>
-       <sortSpecification>
-         <statName>perc_20</statName>
-         <direction>desc</direction>
-       </sortSpecification>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>limit request</name>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>count(int(int_id))</expression>
-       <name>count</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,int(int_id))</expression>
-       <name>perc_20</name>
-     </statistic>
-     
-     <fieldFacet limit="5">
-       <field>long_ld</field>
-       <sortSpecification>
-         <statName>mean</statName>
-         <direction>asc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet limit="3">
-       <field>float_fd</field>
-       <sortSpecification>
-         <statName>median</statName>
-         <direction>desc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet limit="7">
-       <field>double_dd</field>
-       <sortSpecification>
-         <statName>count</statName>
-         <direction>asc</direction>
-       </sortSpecification>
-     </fieldFacet>
-     <fieldFacet limit="1">
-       <field>string_sd</field>
-       <sortSpecification>
-         <statName>perc_20</statName>
-         <direction>desc</direction>
-       </sortSpecification>
-     </fieldFacet>
-   </analyticsRequest>
-</analyticsRequestEnvelope>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
deleted file mode 100644
index 8e84cf1..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/fieldFacets.xml
+++ /dev/null
@@ -1,496 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>sum</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>sum(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>sum(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>mean</name>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>mean(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>mean(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>sumOfSquares</name>
-     
-     <statistic>
-       <expression>sumofsquares(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>stddev</name>
-     
-     <statistic>
-       <expression>stddev(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>median</name>
-     
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>median(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>median(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>median(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>perc_20 numeric</name>
-     
-     <statistic>
-       <expression>perc(20,int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>perc_20</name>
-     
-     <statistic>
-       <expression>perc(20,str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>perc_60 numeric</name>
-     
-     <statistic>
-       <expression>perc(60,int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>perc_60</name>
-     
-     <statistic>
-       <expression>perc(60,str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>min numeric</name>
-     
-     <statistic>
-       <expression>min(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>min(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>min(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>min(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>min</name>
-     
-     <statistic>
-       <expression>min(str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>min(date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>max numeric</name>
-     
-     <statistic>
-       <expression>max(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>max(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>max(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>max(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>max</name>
-     
-     <statistic>
-       <expression>max(str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>max(date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>count numeric</name>
-     
-     <statistic>
-       <expression>count(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>count(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>count(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>count</name>
-     
-     <statistic>
-       <expression>count(str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>count(date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>unique numeric</name>
-     
-     <statistic>
-       <expression>unique(int(int_id))</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>unique(float(float_fd))</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>unique(double(double_dd))</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>unique</name>
-     
-     <statistic>
-       <expression>unique(str(string_sd))</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>unique(date(date_dtd))</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>missing numeric</name>
-     
-     <statistic>
-       <expression>missing(int{int_id})</expression>
-       <name>int</name>
-     </statistic>
-     <statistic>
-       <expression>missing(long{long_ld})</expression>
-       <name>long</name>
-     </statistic>
-     <statistic>
-       <expression>missing(float{float_fd})</expression>
-       <name>float</name>
-     </statistic>
-     <statistic>
-       <expression>missing(double{double_dd})</expression>
-       <name>double</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>missing</name>
-     
-     <statistic>
-       <expression>missing(str{string_sd})</expression>
-       <name>str</name>
-     </statistic>
-     <statistic>
-       <expression>missing(date{date_dtd})</expression>
-       <name>date</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>int_id</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>long_ld</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>multivalued</name>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>long_ldm</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>string_sdm</field>
-     </fieldFacet>
-     <fieldFacet>
-       <field>date_dtdm</field>
-     </fieldFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>missing facet</name>
-
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <fieldFacet>
-       <field>date_dtd</field>
-     </fieldFacet>
-     <fieldFacet showMissing="true">
-       <field>string_sd</field>
-     </fieldFacet>
-     <fieldFacet showMissing="true">
-       <field>date_dtdm</field>
-     </fieldFacet>
-   </analyticsRequest>
-</analyticsRequestEnvelope>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml
deleted file mode 100644
index 8fa92b6..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/functions.xml
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>Add Request</name>
-     
-     <statistic>
-       <expression>sum(add(int(int_id),float(float_fd)))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(add_if_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(add(long(long_ld),double(double_dd),float(float_fd)))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(add_ldf_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Multiply Request</name>
-     
-     <statistic>
-       <expression>sum(mult(int(int_id),float(float_fd)))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(mult_if_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(mult(long(long_ld),double(double_dd),float(float_fd)))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(mult_ldf_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Divide Request</name>
-     
-     <statistic>
-       <expression>sum(div(int(int_id),float(float_fd)))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(div_if_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(div(long(long_ld),double(double_dd)))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(double(div_ld_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Power Request</name>
-     
-     <statistic>
-       <expression>sum(pow(int(int_id),float(float_fd))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(pow_if_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(pow(long(long_ld),double(double_dd)))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(double(pow_ld_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Negate Request</name>
-     
-     <statistic>
-       <expression>sum(neg(int(int_id)))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(neg_i_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(neg(long(long_ld)))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(neg_l_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Const Num Request</name>
-     
-     <statistic>
-       <expression>sum(const_num(8))</expression>
-       <name>sum</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(const_8_dd))</expression>
-       <name>sum calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(const_num(10))</expression>
-       <name>mean</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(const_10_dd))</expression>
-       <name>mean calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Date Math Request</name>
-     
-     <statistic>
-       <expression>median(date_math(date(date_dtd),const_str(+2YEARS)))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>median(date(dm_2y_dtd))</expression>
-       <name>median calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(date_math(date(date_dtd),const_str(+2MONTHS)))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>max(date(dm_2m_dtd))</expression>
-       <name>max calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Constant Date Request</name>
-     
-     <statistic>
-       <expression>median(const_date(1800-06-30T23:59:59Z))</expression>
-       <name>median</name>
-     </statistic>
-     <statistic>
-       <expression>median(date(const_00_dtd))</expression>
-       <name>median calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(const_date(1804-06-30T23:59:59Z))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>max(date(const_04_dtd))</expression>
-       <name>max calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Constant String Request</name>
-     
-     <statistic>
-       <expression>min(const_str(this is the first))</expression>
-       <name>min</name>
-     </statistic>
-     <statistic>
-       <expression>min(str(const_first_sd))</expression>
-       <name>min calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(const_str(this is the second))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>max(str(const_second_sd))</expression>
-       <name>max calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Concatenate Request</name>
-     
-     <statistic>
-       <expression>min(concat(const_str(this is the first),str(string_sd)))</expression>
-       <name>min</name>
-     </statistic>
-     <statistic>
-       <expression>min(str(concat_first_sd))</expression>
-       <name>min calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(concat(const_str(this is the second),str(string_sd)))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>max(str(concat_second_sd))</expression>
-       <name>max calced</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Reverse Request</name>
-     
-     <statistic>
-       <expression>min(rev(str(string_sd)))</expression>
-       <name>min</name>
-     </statistic>
-     <statistic>
-       <expression>min(str(rev_sd))</expression>
-       <name>min calced</name>
-     </statistic>
-     
-     <statistic>
-       <expression>max(rev(str(string_sd)))</expression>
-       <name>max</name>
-     </statistic>
-     <statistic>
-       <expression>max(str(rev_sd))</expression>
-       <name>max calced</name>
-     </statistic>
-   </analyticsRequest>
-</analyticsRequestEnvelope> 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml
deleted file mode 100644
index 2813d18..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/noFacets.xml
+++ /dev/null
@@ -1,310 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>Sum Request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>sum(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>sum(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>sum(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>SumOfSquares Request</name>
-     
-     <statistic>
-       <expression>sumofsquares(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>sumofsquares(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Mean Request</name>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>mean(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>mean(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>mean(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Stddev Request</name>
-     
-     <statistic>
-       <expression>stddev(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>stddev(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Median Request</name>
-     
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>median(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>median(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>median(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Perc 20 Request</name>
-     
-     <statistic>
-       <expression>perc(20,int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(20,str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Perc 60 Request</name>
-     
-     <statistic>
-       <expression>perc(60,int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>perc(60,str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Min Request</name>
-     
-     <statistic>
-       <expression>min(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>min(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>min(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>min(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>min(date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>min(str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Max Request</name>
-     
-     <statistic>
-       <expression>max(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>max(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>max(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>max(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>max(date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>max(str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Unique Request</name>
-     
-     <statistic>
-       <expression>unique(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>unique(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>unique(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>unique(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>unique(date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>unique(str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Count Request</name>
-     
-     <statistic>
-       <expression>count(int(int_id))</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>count(long(long_ld))</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>count(float(float_fd))</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>count(double(double_dd))</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>count(date(date_dtd))</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>count(str(string_sd))</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-   
-   <analyticsRequest>
-     <name>Missing Request</name>
-          
-     <statistic>
-       <expression>missing(int{int_id})</expression>
-       <name>int_id</name>
-     </statistic>
-     <statistic>
-       <expression>missing(long{long_ld})</expression>
-       <name>long_ld</name>
-     </statistic>
-     <statistic>
-       <expression>missing(float{float_fd})</expression>
-       <name>float_fd</name>
-     </statistic>
-     <statistic>
-       <expression>missing(double{double_dd})</expression>
-       <name>double_dd</name>
-     </statistic>
-     <statistic>
-       <expression>missing(date{date_dtd})</expression>
-       <name>date_dtd</name>
-     </statistic>
-     <statistic>
-       <expression>missing(str{string_sd})</expression>
-       <name>string_sd</name>
-     </statistic>
-   </analyticsRequest>
-</analyticsRequestEnvelope> 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/d5963beb/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml b/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml
deleted file mode 100644
index f5c7191..0000000
--- a/solr/contrib/analytics/src/test-files/analytics/requestXMLFiles/queryFacets.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyticsRequestEnvelope stats="true" olap="true">
-   <analyticsRequest>
-     <name>int request</name>
-     
-     <statistic>
-       <expression>sum(int(int_id))</expression>
-       <name>sum</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(int(int_id))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <statistic>
-       <expression>median(int(int_id))</expression>
-       <name>median</name>
-     </statistic>
-     
-     <statistic>
-       <expression>perc(8,int(int_id))</expression>
-       <name>perc_8</name>
-     </statistic>
-     
-     <queryFacet>
-       <name>float1</name>
-       <query>float_fd:[* TO 50]</query>
-     </queryFacet>
-     <queryFacet>
-       <name>float2</name>
-       <query>float_fd:[* TO 30]</query>
-     </queryFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>long request</name>
-     
-     <statistic>
-       <expression>sum(long(long_ld))</expression>
-       <name>sum</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(long(long_ld))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <statistic>
-       <expression>median(long(long_ld))</expression>
-       <name>median</name>
-     </statistic>
-     
-     <statistic>
-       <expression>perc(8,long(long_ld))</expression>
-       <name>perc_8</name>
-     </statistic>
-     
-     <queryFacet>
-       <name>string</name>
-       <query>string_sd:abc1</query>
-       <query>string_sd:abc2</query>
-     </queryFacet>
-   </analyticsRequest>
-   <analyticsRequest>
-     <name>float request</name>
-     
-     <statistic>
-       <expression>sum(float(float_fd))</expression>
-       <name>sum</name>
-     </statistic>
-     
-     <statistic>
-       <expression>mean(float(float_fd))</expression>
-       <name>mean</name>
-     </statistic>
-     
-     <statistic>
-       <expression>median(float(float_fd))</expression>
-       <name>median</name>
-     </statistic>
-     
-     <statistic>
-       <expression>perc(8,float(float_fd))</expression>
-       <name>perc_8</name>
-     </statistic>
-     
-     <queryFacet>
-       <name>long and double</name>
-       <query>long_ld:[20 TO *]</query>
-       <query>long_ld:[30 TO *]</query>
-       <query>double_dd:[* TO 50]</query>
-     </queryFacet>
-   </analyticsRequest>
-</analyticsRequestEnvelope>