You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2011/12/15 06:11:30 UTC

svn commit: r1214623 [16/17] - in /lucene/dev/branches/solrcloud: ./ dev-tools/idea/lucene/contrib/ lucene/ lucene/contrib/ lucene/contrib/demo/src/java/org/apache/lucene/demo/ lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighligh...

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java Thu Dec 15 05:11:14 2011
@@ -84,6 +84,7 @@ public class QueryElevationComponent ext
   private SolrParams initArgs = null;
   private Analyzer analyzer = null;
   private String idField = null;
+  private FieldType idSchemaFT;
 
   boolean forceElevation = false;
   // For each IndexReader, keep a query->elevation map
@@ -115,6 +116,7 @@ public class QueryElevationComponent ext
       this.priority = new HashMap<BytesRef, Integer>();
       int max = elevate.size()+5;
       for( String id : elevate ) {
+        id = idSchemaFT.readableToIndexed(id);
         ids.add(id);
         TermQuery tq = new TermQuery( new Term( idField, id ) );
         include.add( tq, BooleanClause.Occur.SHOULD );
@@ -127,7 +129,7 @@ public class QueryElevationComponent ext
       else {
         this.exclude = new BooleanClause[exclude.size()];
         for( int i=0; i<exclude.size(); i++ ) {
-          TermQuery tq = new TermQuery( new Term( idField, exclude.get(i) ) );
+          TermQuery tq = new TermQuery( new Term( idField, idSchemaFT.readableToIndexed(exclude.get(i)) ) );
           this.exclude[i] = new BooleanClause( tq, BooleanClause.Occur.MUST_NOT );
         }
       }
@@ -155,10 +157,11 @@ public class QueryElevationComponent ext
     }
 
     SchemaField sf = core.getSchema().getUniqueKeyField();
-    if( sf == null || !(sf.getType() instanceof StrField)) {
+    if( sf == null || sf.getType().isTokenized() == true) {
       throw new SolrException( SolrException.ErrorCode.SERVER_ERROR, 
-          "QueryElevationComponent requires the schema to have a uniqueKeyField implemented using StrField" );
+          "QueryElevationComponent requires the schema to have a uniqueKeyField implemented using a non-tokenized field" );
     }
+    idSchemaFT = sf.getType();
     idField = sf.getName();
     //register the EditorialMarkerFactory
     EditorialMarkerFactory factory = new EditorialMarkerFactory();
@@ -385,10 +388,9 @@ public class QueryElevationComponent ext
       // insert documents in their proper place 
       SortSpec sortSpec = rb.getSortSpec();
       if( sortSpec.getSort() == null ) {
-        sortSpec.setSort( new Sort( new SortField[] {
+        sortSpec.setSort( new Sort( 
             new SortField(idField, booster.comparatorSource, false ),
-            new SortField(null, SortField.Type.SCORE, false)
-        }));
+            new SortField(null, SortField.Type.SCORE, false)));
       }
       else {
         // Check if the sort is based on score

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/GapFragmenter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/GapFragmenter.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/GapFragmenter.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/GapFragmenter.java Thu Dec 15 05:11:14 2011
@@ -22,7 +22,6 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.search.highlight.Fragmenter;
 import org.apache.lucene.search.highlight.NullFragmenter;
 import org.apache.lucene.search.highlight.SimpleFragmenter;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.HighlightParams;
 import org.apache.solr.common.params.SolrParams;
 
@@ -31,9 +30,7 @@ public class GapFragmenter extends Highl
   public Fragmenter getFragmenter(String fieldName, SolrParams params )
   {
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
+    params = SolrParams.wrapDefaults(params, defaults);
     
     int fragsize = params.getFieldInt( fieldName, HighlightParams.FRAGSIZE, 100 );
     return (fragsize <= 0) ? new NullFragmenter() : new LuceneGapFragmenter(fragsize);

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/HtmlFormatter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/HtmlFormatter.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/HtmlFormatter.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/HtmlFormatter.java Thu Dec 15 05:11:14 2011
@@ -18,7 +18,6 @@ package org.apache.solr.highlight;
 
 import org.apache.lucene.search.highlight.Formatter;
 import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.HighlightParams;
 import org.apache.solr.common.params.SolrParams;
 
@@ -30,10 +29,8 @@ public class HtmlFormatter extends Highl
   public Formatter getFormatter(String fieldName, SolrParams params ) 
   {
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
-    
+    params = SolrParams.wrapDefaults(params, defaults);
+
     return new SimpleHTMLFormatter(
         params.getFieldParam(fieldName, HighlightParams.SIMPLE_PRE,  "<em>" ), 
         params.getFieldParam(fieldName, HighlightParams.SIMPLE_POST, "</em>"));

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/RegexFragmenter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/RegexFragmenter.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/RegexFragmenter.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/RegexFragmenter.java Thu Dec 15 05:11:14 2011
@@ -26,7 +26,6 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
 import org.apache.lucene.search.highlight.Fragmenter;
 import org.apache.lucene.search.highlight.NullFragmenter;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.HighlightParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
@@ -66,10 +65,9 @@ public class RegexFragmenter extends Hig
 
   public Fragmenter getFragmenter(String fieldName, SolrParams params )
   { 
-    numRequests++;        
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
+    numRequests++;
+    params = SolrParams.wrapDefaults(params, defaults);
+
     int fragsize  = params.getFieldInt(   fieldName, HighlightParams.FRAGSIZE,  LuceneRegexFragmenter.DEFAULT_FRAGMENT_SIZE );
     int increment = params.getFieldInt(   fieldName, HighlightParams.INCREMENT, LuceneRegexFragmenter.DEFAULT_INCREMENT_GAP );
     float slop    = params.getFieldFloat( fieldName, HighlightParams.SLOP,      LuceneRegexFragmenter.DEFAULT_SLOP );

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SimpleFragListBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SimpleFragListBuilder.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SimpleFragListBuilder.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SimpleFragListBuilder.java Thu Dec 15 05:11:14 2011
@@ -18,18 +18,18 @@
 package org.apache.solr.highlight;
 
 import org.apache.lucene.search.vectorhighlight.FragListBuilder;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.SolrParams;
 
 public class SimpleFragListBuilder extends HighlightingPluginBase implements
     SolrFragListBuilder {
 
   public FragListBuilder getFragListBuilder(SolrParams params) {
+    // NOTE: This class (currently) makes no use of params
+    // If that ever changes, it should wrap them with defaults...
+    // params = SolrParams.wrapDefaults(params, defaults)
+
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
-    
+
     return new org.apache.lucene.search.vectorhighlight.SimpleFragListBuilder();
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SingleFragListBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SingleFragListBuilder.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SingleFragListBuilder.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SingleFragListBuilder.java Thu Dec 15 05:11:14 2011
@@ -18,18 +18,18 @@
 package org.apache.solr.highlight;
 
 import org.apache.lucene.search.vectorhighlight.FragListBuilder;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.SolrParams;
 
 public class SingleFragListBuilder extends HighlightingPluginBase implements
     SolrFragListBuilder {
 
   public FragListBuilder getFragListBuilder(SolrParams params) {
+    // NOTE: This class (currently) makes no use of params
+    // If that ever changes, it should wrap them with defaults...
+    // params = SolrParams.wrapDefaults(params, defaults)
+
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
-    
+
     return new org.apache.lucene.search.vectorhighlight.SingleFragListBuilder();
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrBoundaryScanner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrBoundaryScanner.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrBoundaryScanner.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrBoundaryScanner.java Thu Dec 15 05:11:14 2011
@@ -18,7 +18,6 @@
 package org.apache.solr.highlight;
 
 import org.apache.lucene.search.vectorhighlight.BoundaryScanner;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.SolrInfoMBean;
 import org.apache.solr.util.plugin.NamedListInitializedPlugin;
@@ -28,9 +27,8 @@ public abstract class SolrBoundaryScanne
 
   public BoundaryScanner getBoundaryScanner(String fieldName, SolrParams params){
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
+    params = SolrParams.wrapDefaults(params, defaults);
+
     return get(fieldName, params);
   }
   

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/highlight/SolrFragmentsBuilder.java Thu Dec 15 05:11:14 2011
@@ -20,7 +20,6 @@ package org.apache.solr.highlight;
 import org.apache.lucene.search.vectorhighlight.BoundaryScanner;
 import org.apache.lucene.search.vectorhighlight.FragmentsBuilder;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.HighlightParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.SolrInfoMBean;
@@ -40,9 +39,8 @@ public abstract class SolrFragmentsBuild
    */
   public FragmentsBuilder getFragmentsBuilder(SolrParams params, BoundaryScanner bs) {
     numRequests++;
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
+    params = SolrParams.wrapDefaults(params, defaults);
+
     return getFragmentsBuilder( params, getPreTags( params, null ), getPostTags( params, null ), bs );
   }
   
@@ -55,9 +53,8 @@ public abstract class SolrFragmentsBuild
   }
   
   private String[] getTags( SolrParams params, String paramName, String fieldName, String def ){
-    if( defaults != null ) {
-      params = new DefaultSolrParams( params, defaults );
-    }
+    params = SolrParams.wrapDefaults(params, defaults);
+
     String value = null;
     if( fieldName == null )
       value = params.get( paramName, def );

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java Thu Dec 15 05:11:14 2011
@@ -20,7 +20,7 @@ import java.io.IOException;
 import java.util.Map;
 
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.util.ReaderUtil;
 import org.apache.solr.common.SolrDocument;
@@ -63,7 +63,7 @@ public class ValueSourceAugmenter extend
     try {
       IndexReader reader = qparser.getReq().getSearcher().getIndexReader();
       readerContexts = reader.getTopReaderContext().leaves();
-      docValuesArr = new DocValues[readerContexts.length];
+      docValuesArr = new FunctionValues[readerContexts.length];
 
       searcher = qparser.getReq().getSearcher();
       fcontext = ValueSource.newContext(searcher);
@@ -77,7 +77,7 @@ public class ValueSourceAugmenter extend
   Map fcontext;
   SolrIndexSearcher searcher;
   IndexReader.AtomicReaderContext[] readerContexts;
-  DocValues docValuesArr[];
+  FunctionValues docValuesArr[];
 
 
   @Override
@@ -89,7 +89,7 @@ public class ValueSourceAugmenter extend
       // TODO: calculate this stuff just once across diff functions
       int idx = ReaderUtil.subIndex(docid, readerContexts);
       IndexReader.AtomicReaderContext rcontext = readerContexts[idx];
-      DocValues values = docValuesArr[idx];
+      FunctionValues values = docValuesArr[idx];
       if (values == null) {
         docValuesArr[idx] = values = valueSource.getValues(fcontext, rcontext);
       }

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/BoolField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/BoolField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/BoolField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/BoolField.java Thu Dec 15 05:11:14 2011
@@ -22,7 +22,7 @@ import org.apache.lucene.index.Indexable
 import org.apache.lucene.search.FieldCache;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.BoolDocValues;
 import org.apache.lucene.queries.function.valuesource.OrdFieldSource;
@@ -170,7 +170,7 @@ class BoolFieldSource extends ValueSourc
 
 
   @Override
-  public DocValues getValues(Map context, IndexReader.AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, IndexReader.AtomicReaderContext readerContext) throws IOException {
     final FieldCache.DocTermsIndex sindex = FieldCache.DEFAULT.getTermsIndex(readerContext.reader, field);
 
     // figure out what ord maps to true

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/DateField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/DateField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/DateField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/DateField.java Thu Dec 15 05:11:14 2011
@@ -22,7 +22,7 @@ import org.apache.lucene.index.Indexable
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.search.TermRangeQuery;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
@@ -462,7 +462,7 @@ class DateFieldSource extends FieldCache
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     return new StringIndexDocValues(this, readerContext, field) {
       @Override
       protected String toTerm(String readableValue) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/LatLonType.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/LatLonType.java Thu Dec 15 05:11:14 2011
@@ -20,7 +20,7 @@ import org.apache.lucene.document.FieldT
 import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.valuesource.VectorValueSource;
 import org.apache.lucene.search.*;
@@ -383,8 +383,8 @@ class SpatialDistanceQuery extends Query
     final int maxDoc;
     final float qWeight;
     int doc=-1;
-    final DocValues latVals;
-    final DocValues lonVals;
+    final FunctionValues latVals;
+    final FunctionValues lonVals;
     final Bits liveDocs;
 
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/RandomSortField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/RandomSortField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/RandomSortField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/RandomSortField.java Thu Dec 15 05:11:14 2011
@@ -23,7 +23,7 @@ import java.util.Map;
 import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.IntDocValues;
 import org.apache.lucene.search.*;
@@ -157,7 +157,7 @@ public class RandomSortField extends Fie
     }
 
     @Override
-    public DocValues getValues(Map context, final AtomicReaderContext readerContext) throws IOException {
+    public FunctionValues getValues(Map context, final AtomicReaderContext readerContext) throws IOException {
       return new IntDocValues(this) {
           private final int seed = getSeed(field, readerContext);
           @Override

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableDoubleField.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@
 
 package org.apache.solr.schema;
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
@@ -122,7 +122,7 @@ class SortableDoubleFieldSource extends 
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final double def = defVal;
 
     return new StringIndexDocValues(this, readerContext, field) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableFloatField.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@
 
 package org.apache.solr.schema;
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
@@ -125,7 +125,7 @@ class SortableFloatFieldSource extends F
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final float def = defVal;
 
     return new StringIndexDocValues(this, readerContext, field) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableIntField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableIntField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableIntField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableIntField.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@
 
 package org.apache.solr.schema;
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
@@ -127,7 +127,7 @@ class SortableIntFieldSource extends Fie
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final int def = defVal;
 
     return new StringIndexDocValues(this, readerContext, field) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableLongField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableLongField.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableLongField.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/SortableLongField.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@
 
 package org.apache.solr.schema;
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
@@ -125,7 +125,7 @@ class SortableLongFieldSource extends Fi
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final long def = defVal;
 
     return new StringIndexDocValues(this, readerContext, field) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/schema/StrFieldSource.java Thu Dec 15 05:11:14 2011
@@ -18,7 +18,7 @@
 package org.apache.solr.schema;
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.docvalues.StringIndexDocValues;
 import org.apache.lucene.queries.function.valuesource.FieldCacheSource;
 
@@ -37,7 +37,7 @@ public class StrFieldSource extends Fiel
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     return new StringIndexDocValues(this, readerContext, field) {
 
       @Override

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/DisMaxQParser.java Thu Dec 15 05:11:14 2011
@@ -23,7 +23,6 @@ import org.apache.lucene.search.BooleanQ
 import org.apache.lucene.search.Query;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.DisMaxParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
@@ -81,7 +80,8 @@ public class DisMaxQParser extends QPars
 
   @Override
   public Query parse() throws ParseException {
-    SolrParams solrParams = localParams == null ? params : new DefaultSolrParams(localParams, params);
+    SolrParams solrParams = SolrParams.wrapDefaults(localParams, params);
+
     queryFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(DisMaxParams.QF));
     if (0 == queryFields.size()) {
       queryFields.put(req.getSchema().getDefaultSearchFieldName(), 1.0f);

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java Thu Dec 15 05:11:14 2011
@@ -31,8 +31,6 @@ import org.apache.lucene.queryparser.cla
 import org.apache.lucene.queryparser.classic.QueryParser;
 import org.apache.lucene.search.*;
 import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.TokenStream;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.DisMaxParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
@@ -42,8 +40,6 @@ import org.apache.solr.util.SolrPluginUt
 import org.apache.solr.analysis.*;
 
 import java.util.*;
-import java.io.Reader;
-import java.io.IOException;
 
 /**
  * An advanced multi-field query parser.
@@ -102,7 +98,7 @@ class ExtendedDismaxQParser extends QPar
     SolrParams localParams = getLocalParams();
     SolrParams params = getParams();
     
-    SolrParams solrParams = localParams == null ? params : new DefaultSolrParams(localParams, params);
+    SolrParams solrParams = SolrParams.wrapDefaults(localParams, params);
 
     final String minShouldMatch = 
       DisMaxQParser.parseMinShouldMatch(req.getSchema(), solrParams);

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/FunctionRangeQParserPlugin.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@
 package org.apache.solr.search;
 
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.FunctionQuery;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.ValueSourceScorer;
@@ -114,7 +114,7 @@ class FunctionRangeQuery extends SolrCon
     @Override
     public void setNextReader(IndexReader.AtomicReaderContext context) throws IOException {
       maxdoc = context.reader.maxDoc();
-      DocValues dv = rangeFilt.getValueSource().getValues(fcontext, context);
+      FunctionValues dv = rangeFilt.getValueSource().getValues(fcontext, context);
       scorer = dv.getRangeScorer(context.reader, rangeFilt.getLowerVal(), rangeFilt.getUpperVal(), rangeFilt.isIncludeLower(), rangeFilt.isIncludeUpper());
       super.setNextReader(context);
     }

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Thu Dec 15 05:11:14 2011
@@ -17,6 +17,7 @@
 
 package org.apache.solr.search;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.net.URL;
 import java.util.*;
@@ -63,7 +64,7 @@ import org.slf4j.LoggerFactory;
  *
  * @since solr 0.9
  */
-public class SolrIndexSearcher extends IndexSearcher implements SolrInfoMBean {
+public class SolrIndexSearcher extends IndexSearcher implements Closeable,SolrInfoMBean {
 
   // These should *only* be used for debugging or monitoring purposes
   public static final AtomicLong numOpens = new AtomicLong();
@@ -107,9 +108,9 @@ public class SolrIndexSearcher extends I
   private Collection<String> storedHighlightFieldNames;
   private DirectoryFactory directoryFactory;
   
-  public SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, SolrIndexConfig config, String name, boolean readOnly, boolean enableCache, DirectoryFactory directoryFactory) throws IOException {
+  public SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, SolrIndexConfig config, String name, boolean enableCache, DirectoryFactory directoryFactory) throws IOException {
     // we don't need to reserve the directory because we get it from the factory
-    this(core, schema,name, core.getIndexReaderFactory().newReader(directoryFactory.get(path, config.lockType), readOnly), true, enableCache, false, directoryFactory);
+    this(core, schema,name, core.getIndexReaderFactory().newReader(directoryFactory.get(path, config.lockType)), true, enableCache, false, directoryFactory);
   }
 
   public SolrIndexSearcher(SolrCore core, IndexSchema schema, String name, IndexReader r, boolean closeReader, boolean enableCache, boolean reserveDirectory, DirectoryFactory directoryFactory) {
@@ -222,7 +223,6 @@ public class SolrIndexSearcher extends I
    *
    * In particular, the underlying reader and any cache's in use are closed.
    */
-  @Override
   public void close() throws IOException {
     if (cachingEnabled) {
       StringBuilder sb = new StringBuilder();

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/ValueSourceParser.java Thu Dec 15 05:11:14 2011
@@ -19,7 +19,7 @@ package org.apache.solr.search;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queries.function.BoostedQuery;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.BoolDocValues;
 import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
@@ -173,7 +173,7 @@ public abstract class ValueSourceParser 
           }
 
           @Override
-          protected float func(int doc, DocValues vals) {
+          protected float func(int doc, FunctionValues vals) {
             return Math.abs(vals.floatVal(doc));
           }
         };
@@ -209,7 +209,7 @@ public abstract class ValueSourceParser 
           }
 
           @Override
-          protected float func(int doc, DocValues aVals, DocValues bVals) {
+          protected float func(int doc, FunctionValues aVals, FunctionValues bVals) {
             return aVals.floatVal(doc) - bVals.floatVal(doc);
           }
         };
@@ -353,133 +353,133 @@ public abstract class ValueSourceParser 
 
     addParser(new DoubleParser("rad") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return vals.doubleVal(doc) * DistanceUtils.DEGREES_TO_RADIANS;
       }
     });
     addParser(new DoubleParser("deg") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return vals.doubleVal(doc) * DistanceUtils.RADIANS_TO_DEGREES;
       }
     });
     addParser(new DoubleParser("sqrt") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.sqrt(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("cbrt") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.cbrt(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("log") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.log10(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("ln") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.log(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("exp") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.exp(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("sin") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.sin(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("cos") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.cos(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("tan") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.tan(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("asin") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.asin(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("acos") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.acos(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("atan") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.atan(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("sinh") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.sinh(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("cosh") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.cosh(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("tanh") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.tanh(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("ceil") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.ceil(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("floor") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.floor(vals.doubleVal(doc));
       }
     });
     addParser(new DoubleParser("rint") {
       @Override
-      public double func(int doc, DocValues vals) {
+      public double func(int doc, FunctionValues vals) {
         return Math.rint(vals.doubleVal(doc));
       }
     });
     addParser(new Double2Parser("pow") {
       @Override
-      public double func(int doc, DocValues a, DocValues b) {
+      public double func(int doc, FunctionValues a, FunctionValues b) {
         return Math.pow(a.doubleVal(doc), b.doubleVal(doc));
       }
     });
     addParser(new Double2Parser("hypot") {
       @Override
-      public double func(int doc, DocValues a, DocValues b) {
+      public double func(int doc, FunctionValues a, FunctionValues b) {
         return Math.hypot(a.doubleVal(doc), b.doubleVal(doc));
       }
     });
     addParser(new Double2Parser("atan2") {
       @Override
-      public double func(int doc, DocValues a, DocValues b) {
+      public double func(int doc, FunctionValues a, FunctionValues b) {
         return Math.atan2(a.doubleVal(doc), b.doubleVal(doc));
       }
     });
@@ -629,7 +629,7 @@ public abstract class ValueSourceParser 
             return "exists";
           }
           @Override
-          protected boolean func(int doc, DocValues vals) {
+          protected boolean func(int doc, FunctionValues vals) {
             return vals.exists(doc);
           }
         };
@@ -642,7 +642,7 @@ public abstract class ValueSourceParser 
         ValueSource vs = fp.parseValueSource();
         return new SimpleBoolFunction(vs) {
           @Override
-          protected boolean func(int doc, DocValues vals) {
+          protected boolean func(int doc, FunctionValues vals) {
             return !vals.boolVal(doc);
           }
           @Override
@@ -664,8 +664,8 @@ public abstract class ValueSourceParser 
             return "and";
           }
           @Override
-          protected boolean func(int doc, DocValues[] vals) {
-            for (DocValues dv : vals)
+          protected boolean func(int doc, FunctionValues[] vals) {
+            for (FunctionValues dv : vals)
               if (!dv.boolVal(doc)) return false;
             return true;
           }
@@ -683,8 +683,8 @@ public abstract class ValueSourceParser 
             return "or";
           }
           @Override
-          protected boolean func(int doc, DocValues[] vals) {
-            for (DocValues dv : vals)
+          protected boolean func(int doc, FunctionValues[] vals) {
+            for (FunctionValues dv : vals)
               if (dv.boolVal(doc)) return true;
             return false;
           }
@@ -702,9 +702,9 @@ public abstract class ValueSourceParser 
             return "xor";
           }
           @Override
-          protected boolean func(int doc, DocValues[] vals) {
+          protected boolean func(int doc, FunctionValues[] vals) {
             int nTrue=0, nFalse=0;
-            for (DocValues dv : vals) {
+            for (FunctionValues dv : vals) {
               if (dv.boolVal(doc)) nTrue++;
               else nFalse++;
             }
@@ -888,7 +888,7 @@ class DateValueSourceParser extends Valu
         }
 
         @Override
-        protected float func(int doc, DocValues aVals, DocValues bVals) {
+        protected float func(int doc, FunctionValues aVals, FunctionValues bVals) {
           return ms1 - bVals.longVal(doc);
         }
       };
@@ -902,7 +902,7 @@ class DateValueSourceParser extends Valu
         }
 
         @Override
-        protected float func(int doc, DocValues aVals, DocValues bVals) {
+        protected float func(int doc, FunctionValues aVals, FunctionValues bVals) {
           return aVals.longVal(doc) - ms2;
         }
       };
@@ -916,7 +916,7 @@ class DateValueSourceParser extends Valu
         }
 
         @Override
-        protected float func(int doc, DocValues aVals, DocValues bVals) {
+        protected float func(int doc, FunctionValues aVals, FunctionValues bVals) {
           return aVals.longVal(doc) - bVals.longVal(doc);
         }
       };
@@ -945,7 +945,7 @@ class LongConstValueSource extends Const
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     return new LongDocValues(this) {
       @Override
       public float floatVal(int doc) {
@@ -1034,7 +1034,7 @@ abstract class DoubleParser extends Name
     super(name);
   }
 
-  public abstract double func(int doc, DocValues vals);
+  public abstract double func(int doc, FunctionValues vals);
 
   @Override
   public ValueSource parse(FunctionQParser fp) throws ParseException {
@@ -1052,8 +1052,8 @@ abstract class DoubleParser extends Name
     }
 
     @Override
-    public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-      final DocValues vals =  source.getValues(context, readerContext);
+    public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+      final FunctionValues vals =  source.getValues(context, readerContext);
       return new DoubleDocValues(this) {
         @Override
         public double doubleVal(int doc) {
@@ -1074,7 +1074,7 @@ abstract class Double2Parser extends Nam
     super(name);
   }
 
-  public abstract double func(int doc, DocValues a, DocValues b);
+  public abstract double func(int doc, FunctionValues a, FunctionValues b);
 
   @Override
   public ValueSource parse(FunctionQParser fp) throws ParseException {
@@ -1100,9 +1100,9 @@ abstract class Double2Parser extends Nam
     }
 
     @Override
-    public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-      final DocValues aVals =  a.getValues(context, readerContext);
-      final DocValues bVals =  b.getValues(context, readerContext);
+    public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+      final FunctionValues aVals =  a.getValues(context, readerContext);
+      final FunctionValues bVals =  b.getValues(context, readerContext);
       return new DoubleDocValues(this) {
          @Override
         public double doubleVal(int doc) {
@@ -1154,7 +1154,7 @@ class BoolConstValueSource extends Const
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     return new BoolDocValues(this) {
       @Override
       public boolean boolVal(int doc) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/FileFloatSource.java Thu Dec 15 05:11:14 2011
@@ -33,7 +33,7 @@ import org.apache.lucene.index.MultiFiel
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.IndexReader.ReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.FloatDocValues;
 import org.apache.lucene.util.BytesRef;
@@ -76,7 +76,7 @@ public class FileFloatSource extends Val
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
     final int off = readerContext.docBase;
     ReaderContext topLevelContext = ReaderUtil.getTopLevelContext(readerContext);
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashFunction.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@ package org.apache.solr.search.function.
  */
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.spatial.geohash.GeoHashUtils;
 
@@ -46,12 +46,12 @@ public class GeohashFunction extends Val
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    final DocValues latDV = lat.getValues(context, readerContext);
-    final DocValues lonDV = lon.getValues(context, readerContext);
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final FunctionValues latDV = lat.getValues(context, readerContext);
+    final FunctionValues lonDV = lon.getValues(context, readerContext);
 
 
-    return new DocValues() {
+    return new FunctionValues() {
 
       @Override
       public String strVal(int doc) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/GeohashHaversineFunction.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@ package org.apache.solr.search.function.
  */
 
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
 import org.apache.lucene.spatial.DistanceUtils;
@@ -55,9 +55,9 @@ public class GeohashHaversineFunction ex
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    final DocValues gh1DV = geoHash1.getValues(context, readerContext);
-    final DocValues gh2DV = geoHash2.getValues(context, readerContext);
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final FunctionValues gh1DV = geoHash1.getValues(context, readerContext);
+    final FunctionValues gh2DV = geoHash2.getValues(context, readerContext);
 
     return new DoubleDocValues(this) {
       @Override
@@ -75,7 +75,7 @@ public class GeohashHaversineFunction ex
     };
   }
 
-  protected double distance(int doc, DocValues gh1DV, DocValues gh2DV) {
+  protected double distance(int doc, FunctionValues gh1DV, FunctionValues gh2DV) {
     double result = 0;
     String h1 = gh1DV.strVal(doc);
     String h2 = gh2DV.strVal(doc);

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@ package org.apache.solr.search.function.
  */
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
 import org.apache.lucene.queries.function.valuesource.ConstNumberSource;
@@ -148,7 +148,7 @@ public class HaversineConstFunction exte
     } catch (InvalidGeoException e) {
       throw new ParseException("Bad spatial pt:" + pt);
     }
-    return new VectorValueSource(Arrays.asList(new ValueSource[] {new DoubleConstValueSource(point[0]),new DoubleConstValueSource(point[1])}));
+    return new VectorValueSource(Arrays.<ValueSource>asList(new DoubleConstValueSource(point[0]),new DoubleConstValueSource(point[1])));
   }
 
   private static double[] getConstants(MultiValueSource vs) {
@@ -198,9 +198,9 @@ public class HaversineConstFunction exte
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    final DocValues latVals = latSource.getValues(context, readerContext);
-    final DocValues lonVals = lonSource.getValues(context, readerContext);
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final FunctionValues latVals = latSource.getValues(context, readerContext);
+    final FunctionValues lonVals = lonSource.getValues(context, readerContext);
     final double latCenterRad = this.latCenter * DistanceUtils.DEGREES_TO_RADIANS;
     final double lonCenterRad = this.lonCenter * DistanceUtils.DEGREES_TO_RADIANS;
     final double latCenterRad_cos = this.latCenterRad_cos;

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/HaversineFunction.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@ package org.apache.solr.search.function.
  */
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
 import org.apache.lucene.queries.function.valuesource.MultiValueSource;
@@ -70,7 +70,7 @@ public class HaversineFunction extends V
    * @param p2DV
    * @return The haversine distance formula
    */
-  protected double distance(int doc, DocValues p1DV, DocValues p2DV) {
+  protected double distance(int doc, FunctionValues p1DV, FunctionValues p2DV) {
 
     double[] p1D = new double[2];
     double[] p2D = new double[2];
@@ -96,10 +96,10 @@ public class HaversineFunction extends V
 
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    final DocValues vals1 = p1.getValues(context, readerContext);
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final FunctionValues vals1 = p1.getValues(context, readerContext);
 
-    final DocValues vals2 = p2.getValues(context, readerContext);
+    final FunctionValues vals2 = p2.getValues(context, readerContext);
     return new DoubleDocValues(this) {
       @Override
       public double doubleVal(int doc) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/SquaredEuclideanFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/SquaredEuclideanFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/SquaredEuclideanFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/SquaredEuclideanFunction.java Thu Dec 15 05:11:14 2011
@@ -16,7 +16,7 @@ package org.apache.solr.search.function.
  * limitations under the License.
  */
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.valuesource.MultiValueSource;
 import org.apache.lucene.spatial.DistanceUtils;
 
@@ -43,7 +43,7 @@ public class SquaredEuclideanFunction ex
    * @param doc The doc to score
    */
   @Override
-  protected double distance(int doc, DocValues dv1, DocValues dv2) {
+  protected double distance(int doc, FunctionValues dv1, FunctionValues dv2) {
 
     double[] vals1 = new double[source1.dimension()];
     double[] vals2 = new double[source1.dimension()];

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/StringDistanceFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/StringDistanceFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/StringDistanceFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/StringDistanceFunction.java Thu Dec 15 05:11:14 2011
@@ -18,7 +18,7 @@ package org.apache.solr.search.function.
  */
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.FloatDocValues;
 import org.apache.lucene.search.spell.StringDistance;
@@ -49,9 +49,9 @@ public class StringDistanceFunction exte
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
-    final DocValues str1DV = str1.getValues(context, readerContext);
-    final DocValues str2DV = str2.getValues(context, readerContext);
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final FunctionValues str1DV = str1.getValues(context, readerContext);
+    final FunctionValues str2DV = str2.getValues(context, readerContext);
     return new FloatDocValues(this) {
 
       @Override

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/VectorDistanceFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/VectorDistanceFunction.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/VectorDistanceFunction.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/search/function/distance/VectorDistanceFunction.java Thu Dec 15 05:11:14 2011
@@ -17,7 +17,7 @@ package org.apache.solr.search.function.
  */
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
 import org.apache.lucene.queries.function.valuesource.MultiValueSource;
@@ -69,7 +69,7 @@ public class VectorDistanceFunction exte
    * @param dv2 The values from the second MultiValueSource
    * @return The distance
    */
-  protected double distance(int doc, DocValues dv1, DocValues dv2) {
+  protected double distance(int doc, FunctionValues dv1, FunctionValues dv2) {
     //Handle some special cases:
     double[] vals1 = new double[source1.dimension()];
     double[] vals2 = new double[source1.dimension()];
@@ -79,11 +79,11 @@ public class VectorDistanceFunction exte
   }
 
   @Override
-  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+  public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
 
-    final DocValues vals1 = source1.getValues(context, readerContext);
+    final FunctionValues vals1 = source1.getValues(context, readerContext);
 
-    final DocValues vals2 = source2.getValues(context, readerContext);
+    final FunctionValues vals2 = source2.getValues(context, readerContext);
 
 
     return new DoubleDocValues(this) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java Thu Dec 15 05:11:14 2011
@@ -111,7 +111,7 @@ public class FileBasedSpellChecker exten
         writer.forceMerge(1);
         writer.close();
 
-        dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir, true),
+        dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir),
                 WORD_FIELD_NAME, 0.0f);
       } else {
         // check if character encoding is defined

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java Thu Dec 15 05:11:14 2011
@@ -64,7 +64,7 @@ public class IndexBasedSpellChecker exte
     if (sourceLocation != null) {
       try {
         FSDirectory luceneIndexDir = FSDirectory.open(new File(sourceLocation));
-        this.reader = IndexReader.open(luceneIndexDir, true);
+        this.reader = IndexReader.open(luceneIndexDir);
       } catch (IOException e) {
         throw new RuntimeException(e);
       }

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/SpellCheckCollator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/SpellCheckCollator.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/SpellCheckCollator.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/spelling/SpellCheckCollator.java Thu Dec 15 05:11:14 2011
@@ -81,11 +81,11 @@ public class SpellCheckCollator {
         params.remove(GroupParams.GROUP);
 
         // creating a request here... make sure to close it!
-        ResponseBuilder checkResponse = new ResponseBuilder(new LocalSolrQueryRequest(ultimateResponse.req.getCore(), params),new SolrQueryResponse(), Arrays.asList(new SearchComponent[] { queryComponent }));
+        ResponseBuilder checkResponse = new ResponseBuilder(new LocalSolrQueryRequest(ultimateResponse.req.getCore(), params),new SolrQueryResponse(), Arrays.<SearchComponent>asList(queryComponent));
         checkResponse.setQparser(ultimateResponse.getQparser());
         checkResponse.setFilters(ultimateResponse.getFilters());
         checkResponse.setQueryString(collationQueryStr);
-        checkResponse.components = Arrays.asList(new SearchComponent[] { queryComponent });
+        checkResponse.components = Arrays.<SearchComponent>asList(queryComponent);
 
         try {
           queryComponent.prepare(checkResponse);

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/update/VersionInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/update/VersionInfo.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/update/VersionInfo.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/update/VersionInfo.java Thu Dec 15 05:11:14 2011
@@ -20,11 +20,10 @@ package org.apache.solr.update;
 import java.io.IOException;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.util.BitUtil;
 import org.apache.lucene.util.BytesRef;
@@ -155,8 +154,8 @@ public class VersionInfo {
       ValueSource vs = versionField.getType().getValueSource(versionField, null);
       Map context = ValueSource.newContext(searcher);
       vs.createWeight(context, searcher);
-      DocValues dv = vs.getValues(context, searcher.getTopReaderContext().leaves()[(int)(lookup>>32)]);
-      long ver = dv.longVal((int)lookup);
+      FunctionValues fv = vs.getValues(context, searcher.getTopReaderContext().leaves()[(int)(lookup>>32)]);
+      long ver = fv.longVal((int)lookup);
       return ver;
 
     } catch (IOException e) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java Thu Dec 15 05:11:14 2011
@@ -25,10 +25,8 @@ import org.apache.lucene.search.BooleanC
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.AppendedSolrParams;
-import org.apache.solr.common.params.DefaultSolrParams;
-import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.CommonParams;
+import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.params.UpdateParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
@@ -81,15 +79,10 @@ public class SolrPluginUtils {
                                  SolrParams appends, SolrParams invariants) {
 
       SolrParams p = req.getParams();
-      if (defaults != null) {
-        p = new DefaultSolrParams(p,defaults);
-      }
-      if (appends != null) {
-        p = new AppendedSolrParams(p,appends);
-      }
-      if (invariants != null) {
-        p = new DefaultSolrParams(invariants,p);
-      }
+      p = SolrParams.wrapDefaults(p, defaults);
+      p = SolrParams.wrapAppended(p, appends);
+      p = SolrParams.wrapDefaults(invariants, p);
+
       req.setParams(p);
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/test-files/solr/conf/elevate.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test-files/solr/conf/elevate.xml?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test-files/solr/conf/elevate.xml (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test-files/solr/conf/elevate.xml Thu Dec 15 05:11:14 2011
@@ -32,5 +32,11 @@
   <doc id="2" />
   <doc id="3" />
  </query>
- 
+
+ <query text="AAAA">
+  <doc id="7.0" />
+ </query>
+
+
+
 </elevate>

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java Thu Dec 15 05:11:14 2011
@@ -34,9 +34,7 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.LogMergePolicy;
 import org.apache.solr.common.SolrException;
-import org.apache.solr.common.params.AppendedSolrParams;
 import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.params.DefaultSolrParams;
 import org.apache.solr.common.params.MapSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
@@ -448,7 +446,7 @@ public class BasicFunctionalityTest exte
     assertEquals(p.getInt("iii",5), 5);
     assertEquals(p.getFieldParam("field1","i"), "555");
 
-    req.setParams(new DefaultSolrParams(p, new MapSolrParams(m)));
+    req.setParams(SolrParams.wrapDefaults(p, new MapSolrParams(m)));
     p = req.getParams();
     assertEquals(req.getOriginalParams().get("s"), "bbb");
     assertEquals(p.get("i"), "555");
@@ -470,7 +468,7 @@ public class BasicFunctionalityTest exte
     more.add("s", "ccc");
     more.add("ss","YYY");
     more.add("xx","XXX");
-    p = new AppendedSolrParams(p, SolrParams.toSolrParams(more));
+    p = SolrParams.wrapAppended(p, SolrParams.toSolrParams(more));
     assertEquals(3, p.getParams("s").length);
     assertEquals("bbb", p.getParams("s")[0]);
     assertEquals("aaa", p.getParams("s")[1]);

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/TestDistributedGrouping.java Thu Dec 15 05:11:14 2011
@@ -140,6 +140,7 @@ public class TestDistributedGrouping ext
     query("q", "*:*", "fq", s1 + ":a", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", i1 + " asc, id asc", "group.truncate", "true", "facet", "true", "facet.field", t1);
 
     // We cannot validate distributed grouping with scoring as first sort. since there is no global idf. We can check if no errors occur
+    simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", i1 + " desc", "group.sort", "score desc"); // SOLR-2955
     simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10, "sort", "score desc, _docid_ asc, id asc");
     simpleQuery("q", "*:*", "rows", 100, "fl", "id," + i1, "group", "true", "group.field", i1, "group.limit", 10);
   }
@@ -149,6 +150,7 @@ public class TestDistributedGrouping ext
     for (int i = 0; i < queryParams.length; i += 2) {
       params.add(queryParams[i].toString(), queryParams[i + 1].toString());
     }
+    params.set("shards", shards);
     queryServer(params);
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java Thu Dec 15 05:11:14 2011
@@ -61,10 +61,9 @@ public class AlternateDirectoryTest exte
     static volatile boolean newReaderCalled = false;
 
     @Override
-    public IndexReader newReader(Directory indexDir, boolean readOnly)
-        throws IOException {
+    public IndexReader newReader(Directory indexDir) throws IOException {
       TestIndexReaderFactory.newReaderCalled = true;
-      return IndexReader.open(indexDir, readOnly);
+      return IndexReader.open(indexDir);
     }
   }
 

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java Thu Dec 15 05:11:14 2011
@@ -16,7 +16,7 @@ package org.apache.solr.core;
  * limitations under the License.
  */
 
-import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.valuesource.SimpleFloatFunction;
 import org.apache.lucene.queryparser.classic.ParseException;
@@ -47,7 +47,7 @@ public class DummyValueSourceParser exte
       }
 
       @Override
-      protected float func(int doc, DocValues vals) {
+      protected float func(int doc, FunctionValues vals) {
         float result = 0;
         return result;
       }

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java Thu Dec 15 05:11:14 2011
@@ -75,7 +75,7 @@ public class TestQuerySenderListener ext
     assertNotNull("Event is null", evt);
     assertTrue(evt + " is not equal to " + EventParams.FIRST_SEARCHER, evt.equals(EventParams.FIRST_SEARCHER) == true);
 
-    SolrIndexSearcher newSearcher = new SolrIndexSearcher(core, core.getNewIndexDir(), core.getSchema(), core.getSolrConfig().mainIndexConfig, "testQuerySenderListener", true, false, core.getDirectoryFactory());
+    SolrIndexSearcher newSearcher = new SolrIndexSearcher(core, core.getNewIndexDir(), core.getSchema(), core.getSolrConfig().mainIndexConfig, "testQuerySenderListener", false, core.getDirectoryFactory());
 
     qsl.newSearcher(newSearcher, currentSearcher);
     evt = mock.req.getParams().get(EventParams.EVENT);

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java Thu Dec 15 05:11:14 2011
@@ -75,7 +75,7 @@ public class TestQuerySenderNoQuery exte
     assertNotNull("Mock is null", mock);
     assertNull("Req (firstsearcher) is not null", mock.req);
 
-    SolrIndexSearcher newSearcher = new SolrIndexSearcher(core, core.getNewIndexDir(), core.getSchema(), core.getSolrConfig().mainIndexConfig, "testQuerySenderNoQuery", true, false, core.getDirectoryFactory());
+    SolrIndexSearcher newSearcher = new SolrIndexSearcher(core, core.getNewIndexDir(), core.getSchema(), core.getSolrConfig().mainIndexConfig, "testQuerySenderNoQuery", false, core.getDirectoryFactory());
 
     qsl.newSearcher(newSearcher, currentSearcher); // get newSearcher.
     assertNull("Req (newsearcher) is not null", mock.req);

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java Thu Dec 15 05:11:14 2011
@@ -860,7 +860,6 @@ public class TestReplicationHandler exte
       TopDocs hits = searcher.search(new MatchAllDocsQuery(), 1);
       assertEquals(nDocs, hits.totalHits);
       reader.close();
-      searcher.close();
       dir.close();
     }
     if(snapDir[0].exists()) {

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Thu Dec 15 05:11:14 2011
@@ -17,8 +17,12 @@
 
 package org.apache.solr.handler.admin;
 
+import org.apache.solr.common.luke.FieldFlag;
 import org.apache.solr.util.AbstractSolrTestCase;
 
+import java.util.EnumSet;
+import java.util.Arrays;
+
 /**
  * :TODO: currently only tests some of the utilities in the LukeRequestHandler
  */
@@ -93,7 +97,40 @@ public class LukeRequestHandlerTest exte
 
     // test that Luke can handle all of the field types
     assertQ(req("qt","/admin/luke", "id","SOLR1000"));
-  }
 
+    final int numFlags = EnumSet.allOf(FieldFlag.class).size();
+    
+    assertQ("Not all flags ("+numFlags+") mentioned in info->key",
+            req("qt","/admin/luke"),
+            numFlags+"=count(//lst[@name='info']/lst[@name='key']/str)");
+
+    // code should be the same for all fields, but just in case do several
+    for (String f : Arrays.asList("solr_t","solr_s","solr_ti",
+                                  "solr_td","solr_pl","solr_dt","solr_b",
+                                  "solr_sS","solr_sI")) {
+
+      final String xp = getFieldXPathPrefix(f);
+      assertQ("Not as many schema flags as expected ("+numFlags+") for " + f,
+              req("qt","/admin/luke", "fl", f),
+              numFlags+"=string-length("+xp+"[@name='schema'])");
+
+    }
+
+    // diff loop for checking 'index' flags, 
+    // only valid for fields that are indexed & stored
+    for (String f : Arrays.asList("solr_t","solr_s","solr_ti",
+                                  "solr_td","solr_pl","solr_dt","solr_b")) {
+
+      final String xp = getFieldXPathPrefix(f);
+      assertQ("Not as many index flags as expected ("+numFlags+") for " + f,
+              req("qt","/admin/luke", "fl", f),
+              numFlags+"=string-length("+xp+"[@name='index'])");
+    }
+
+  }
 
+  private static String getFieldXPathPrefix(String field) {
+    return "//lst[@name='fields']/lst[@name='"+field+"']/str";
+  }
+  
 }

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java?rev=1214623&r1=1214622&r2=1214623&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java Thu Dec 15 05:11:14 2011
@@ -30,14 +30,21 @@ public class BadComponentTest extends So
   @Test
   public void testBadElevate() throws Exception {
     try {
+      ignoreException(".*constructing.*");
+      ignoreException(".*QueryElevationComponent.*");
       System.setProperty("elevate.file", "foo.xml");
       initCore("solrconfig-elevate.xml", "schema12.xml");
       assertTrue(false);
-    } catch (Throwable e) {
-      log.error("Exception", e);
-      assertTrue(true);
+    } catch (RuntimeException e) {
+      //TODO: better way of checking this?
+      if (e.getCause() instanceof SolrException){
+        assertTrue(true);
+      } else {
+        assertTrue(false);
+      }
     } finally {
       System.clearProperty("elevate.file");
+      resetExceptionIgnores();
     }
   }
 }