You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/10/30 05:21:38 UTC

svn commit: r1195112 - in /lucene/dev/branches/lucene2621/solr/core/src: java/org/apache/solr/core/ java/org/apache/solr/handler/admin/ java/org/apache/solr/search/ java/org/apache/solr/spelling/ test/org/apache/solr/core/

Author: rmuir
Date: Sun Oct 30 04:21:38 2011
New Revision: 1195112

URL: http://svn.apache.org/viewvc?rev=1195112&view=rev
Log:
LUCENE-3490: always use the configured CodecProvider when opening IndexReaders

Modified:
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/SolrCore.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
    lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
    lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java Sun Oct 30 04:21:38 2011
@@ -29,7 +29,6 @@ import org.apache.solr.util.plugin.Named
  */
 public abstract class IndexReaderFactory implements NamedListInitializedPlugin {
   protected int termInfosIndexDivisor = 1;//IndexReader.DEFAULT_TERMS_INDEX_DIVISOR;  Set this once Lucene makes this public.
-  protected CodecProvider provider;
   /**
    * Potentially initializes {@link #termInfosIndexDivisor}.  Overriding classes should call super.init() in order
    * to make sure termInfosIndexDivisor is set.
@@ -63,13 +62,6 @@ public abstract class IndexReaderFactory
    * @return An IndexReader instance
    * @throws IOException
    */
-  public abstract IndexReader newReader(Directory indexDir, boolean readOnly)
+  public abstract IndexReader newReader(Directory indexDir, boolean readOnly, CodecProvider codecProvider)
       throws IOException;
-  
-  /**
-   * Sets the codec provider for this IndexReaderFactory
-   */
-  public void setCodecProvider(CodecProvider provider) {
-    this.provider = provider;
-  }
 }

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/SolrCore.java Sun Oct 30 04:21:38 2011
@@ -347,7 +347,6 @@ public final class SolrCore implements S
       indexReaderFactory = new StandardIndexReaderFactory();
     } 
     this.indexReaderFactory = indexReaderFactory;
-    this.indexReaderFactory.setCodecProvider(codecProvider);
   }
   
   // protect via synchronized(SolrCore.class)

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java Sun Oct 30 04:21:38 2011
@@ -19,6 +19,7 @@ package org.apache.solr.core;
 import java.io.IOException;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.store.Directory;
 
 /**
@@ -33,8 +34,8 @@ public class StandardIndexReaderFactory 
    * @see org.apache.solr.core.IndexReaderFactory#newReader(org.apache.lucene.store.Directory, boolean)
    */
   @Override
-  public IndexReader newReader(Directory indexDir, boolean readOnly)
+  public IndexReader newReader(Directory indexDir, boolean readOnly, CodecProvider codecProvider)
       throws IOException {
-    return IndexReader.open(indexDir, null, readOnly, termInfosIndexDivisor, provider);
+    return IndexReader.open(indexDir, null, readOnly, termInfosIndexDivisor, codecProvider);
   }
 }

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Sun Oct 30 04:21:38 2011
@@ -213,7 +213,8 @@ public class CoreAdminHandler extends Re
           for (int i = 0; i < dirNames.length; i++) {
             Directory dir = dirFactory.get(dirNames[i], core.getSolrConfig().mainIndexConfig.lockType);
             dirsToBeReleased[i] = dir;
-            readersToBeClosed[i] = IndexReader.open(dir, true);
+            // TODO: why doesn't this use the IR factory? what is going on here?
+            readersToBeClosed[i] = IndexReader.open(dir, true, core.getCodecProvider());
           }
         }
 

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java Sun Oct 30 04:21:38 2011
@@ -106,7 +106,7 @@ public class SolrIndexSearcher extends I
   
   public SolrIndexSearcher(SolrCore core, String path, IndexSchema schema, SolrIndexConfig config, String name, boolean readOnly, 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), readOnly, core.getCodecProvider()), true, enableCache, false, directoryFactory);
   }
 
   public SolrIndexSearcher(SolrCore core, IndexSchema schema, String name, IndexReader r, boolean closeReader, boolean enableCache, boolean reserveDirectory, DirectoryFactory directoryFactory) {

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java Sun Oct 30 04:21:38 2011
@@ -106,7 +106,7 @@ public class FileBasedSpellChecker exten
         writer.optimize();
         writer.close();
 
-        dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir),
+        dictionary = new HighFrequencyDictionary(IndexReader.open(ramDir, true, core.getCodecProvider()),
                 WORD_FIELD_NAME, 0.0f);
       } else {
         // check if character encoding is defined

Modified: lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java Sun Oct 30 04:21:38 2011
@@ -17,6 +17,7 @@ package org.apache.solr.spelling;
  */
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.search.spell.HighFrequencyDictionary;
 
@@ -55,15 +56,15 @@ public class IndexBasedSpellChecker exte
     super.init(config, core);
     threshold = config.get(THRESHOLD_TOKEN_FREQUENCY) == null ? 0.0f
             : (Float) config.get(THRESHOLD_TOKEN_FREQUENCY);
-    initSourceReader();
+    initSourceReader(core.getCodecProvider());
     return name;
   }
 
-  private void initSourceReader() {
+  private void initSourceReader(CodecProvider codecProvider) {
     if (sourceLocation != null) {
       try {
         FSDirectory luceneIndexDir = FSDirectory.open(new File(sourceLocation));
-        this.reader = IndexReader.open(luceneIndexDir);
+        this.reader = IndexReader.open(luceneIndexDir, true, codecProvider);
       } catch (IOException e) {
         throw new RuntimeException(e);
       }
@@ -108,7 +109,7 @@ public class IndexBasedSpellChecker exte
   public void reload(SolrCore core, SolrIndexSearcher searcher) throws IOException {
     super.reload(core, searcher);
     //reload the source
-    initSourceReader();
+    initSourceReader(core.getCodecProvider());
   }
 
   public float getThreshold() {

Modified: lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1195112&r1=1195111&r2=1195112&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java (original)
+++ lucene/dev/branches/lucene2621/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java Sun Oct 30 04:21:38 2011
@@ -20,6 +20,7 @@ import java.io.File;
 import java.io.IOException;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.store.Directory;
 import org.apache.solr.SolrTestCaseJ4;
 import org.junit.BeforeClass;
@@ -61,10 +62,10 @@ public class AlternateDirectoryTest exte
     static volatile boolean newReaderCalled = false;
 
     @Override
-    public IndexReader newReader(Directory indexDir, boolean readOnly)
+    public IndexReader newReader(Directory indexDir, boolean readOnly, CodecProvider codecProvider)
         throws IOException {
       TestIndexReaderFactory.newReaderCalled = true;
-      return IndexReader.open(indexDir, readOnly);
+      return IndexReader.open(indexDir, readOnly, codecProvider);
     }
   }