You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2011/01/07 15:31:09 UTC

svn commit: r1056337 - in /lucene/dev/trunk/solr/src: java/org/apache/solr/search/DocSet.java java/org/apache/solr/search/SortedIntDocSet.java test/org/apache/solr/search/TestDocSet.java

Author: yonik
Date: Fri Jan  7 14:31:09 2011
New Revision: 1056337

URL: http://svn.apache.org/viewvc?rev=1056337&view=rev
Log:
LUCENE-2831: pre-migrate to atomic context

Modified:
    lucene/dev/trunk/solr/src/java/org/apache/solr/search/DocSet.java
    lucene/dev/trunk/solr/src/java/org/apache/solr/search/SortedIntDocSet.java
    lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestDocSet.java

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/DocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/DocSet.java?rev=1056337&r1=1056336&r2=1056337&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/DocSet.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/DocSet.java Fri Jan  7 14:31:09 2011
@@ -248,17 +248,14 @@ abstract class DocSetBase implements Doc
     return new Filter() {
       @Override
       public DocIdSet getDocIdSet(ReaderContext ctx) throws IOException {
-        int offset = 0;
+        IndexReader.AtomicReaderContext context = (IndexReader.AtomicReaderContext)ctx;  // TODO: remove after lucene migration
         IndexReader reader = ctx.reader;
-        SolrIndexReader r = (SolrIndexReader)reader;
-        while (r.getParent() != null) {
-          offset += r.getBase();
-          r = r.getParent();
-        }
 
-        if (r==reader) return bs;
+        if (context.isTopLevel) {
+          return bs;
+        }
 
-        final int base = offset;
+        final int base = context.docBase;
         final int maxDoc = reader.maxDoc();
         final int max = base + maxDoc;   // one past the max doc in this segment.
 

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SortedIntDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SortedIntDocSet.java?rev=1056337&r1=1056336&r2=1056337&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SortedIntDocSet.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SortedIntDocSet.java Fri Jan  7 14:31:09 2011
@@ -23,6 +23,7 @@ import org.apache.lucene.search.DocIdSet
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.ReaderContext;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 
 import java.io.IOException;
 
@@ -552,15 +553,11 @@ public class SortedIntDocSet extends Doc
       int lastEndIdx = 0;
 
       @Override
-      public DocIdSet getDocIdSet(ReaderContext context) throws IOException {
-        int offset = 0;
+      public DocIdSet getDocIdSet(ReaderContext contextX) throws IOException {
+        AtomicReaderContext context = (AtomicReaderContext)contextX;  // TODO: remove after lucene migration
         IndexReader reader = context.reader;
-        SolrIndexReader r = (SolrIndexReader)reader;
-        while (r.getParent() != null) {
-          offset += r.getBase();
-          r = r.getParent();
-        }
-        final int base = offset;
+
+        final int base = context.docBase;
         final int maxDoc = reader.maxDoc();
         final int max = base + maxDoc;   // one past the max doc in this segment.
         int sidx = Math.max(0,lastEndIdx);

Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestDocSet.java?rev=1056337&r1=1056336&r2=1056337&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestDocSet.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestDocSet.java Fri Jan  7 14:31:09 2011
@@ -413,10 +413,15 @@ public class TestDocSet extends LuceneTe
     Filter fa = a.getTopFilter();
     Filter fb = b.getTopFilter();
 
+    /*** top level filters are no longer supported
     // test top-level
     DocIdSet da = fa.getDocIdSet(topLevelContext);
     DocIdSet db = fb.getDocIdSet(topLevelContext);
     doTestIteratorEqual(da, db);
+    ***/
+
+    DocIdSet da;
+    DocIdSet db;
 
     // first test in-sequence sub readers
     for (ReaderContext readerInfo : topLevelContext.leaves()) {