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 2012/02/02 02:37:50 UTC

svn commit: r1239432 - in /lucene/dev/trunk/solr/core/src/java/org/apache/solr/search: BitDocSet.java DocSet.java SortedIntDocSet.java

Author: yonik
Date: Thu Feb  2 01:37:50 2012
New Revision: 1239432

URL: http://svn.apache.org/viewvc?rev=1239432&view=rev
Log:
LUCENE-1536: avoid needless checking of livedocs for solr DocSets

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/BitDocSet.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DocSet.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/BitDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/BitDocSet.java?rev=1239432&r1=1239431&r2=1239432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/BitDocSet.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/BitDocSet.java Thu Feb  2 01:37:50 2012
@@ -17,6 +17,7 @@
 
 package org.apache.solr.search;
 
+import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.AtomicReaderContext;
 import org.apache.lucene.search.BitsFilteredDocIdSet;
@@ -249,7 +250,9 @@ public class BitDocSet extends DocSetBas
     return new Filter() {
       @Override
       public DocIdSet getDocIdSet(final AtomicReaderContext context, final Bits acceptDocs) throws IOException {
-        IndexReader reader = context.reader();
+        AtomicReader reader = context.reader();
+        // all Solr DocSets that are used as filters only include live docs
+        final Bits acceptDocs2 = acceptDocs == null ? null : (reader.getLiveDocs() == acceptDocs ? null : acceptDocs);
 
         if (context.isTopLevel) {
           return BitsFilteredDocIdSet.wrap(bs, acceptDocs);
@@ -306,7 +309,7 @@ public class BitDocSet extends DocSetBas
             };
           }
 
-        }, acceptDocs);
+        }, acceptDocs2);
       }
     };
   }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DocSet.java?rev=1239432&r1=1239431&r2=1239432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DocSet.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/DocSet.java Thu Feb  2 01:37:50 2012
@@ -17,6 +17,7 @@
 
 package org.apache.solr.search;
 
+import org.apache.lucene.index.AtomicReader;
 import org.apache.solr.common.SolrException;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.OpenBitSet;
@@ -272,8 +273,10 @@ abstract class DocSetBase implements Doc
 
     return new Filter() {
       @Override
-      public DocIdSet getDocIdSet(final AtomicReaderContext context, final Bits acceptDocs) throws IOException {
-        IndexReader reader = context.reader();
+      public DocIdSet getDocIdSet(final AtomicReaderContext context, Bits acceptDocs) throws IOException {
+        AtomicReader reader = context.reader();
+        // all Solr DocSets that are used as filters only include live docs
+        final Bits acceptDocs2 = acceptDocs == null ? null : (reader.getLiveDocs() == acceptDocs ? null : acceptDocs);
 
         if (context.isTopLevel) {
           return BitsFilteredDocIdSet.wrap(bs, acceptDocs);
@@ -321,7 +324,7 @@ abstract class DocSetBase implements Doc
             return null;
           }
 
-        }, acceptDocs);
+        }, acceptDocs2);
       }
     };
   }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java?rev=1239432&r1=1239431&r2=1239432&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SortedIntDocSet.java Thu Feb  2 01:37:50 2012
@@ -17,6 +17,7 @@
 
 package org.apache.solr.search;
 
+import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.OpenBitSet;
 import org.apache.lucene.search.BitsFilteredDocIdSet;
@@ -658,7 +659,9 @@ public class SortedIntDocSet extends Doc
 
       @Override
       public DocIdSet getDocIdSet(final AtomicReaderContext context, final Bits acceptDocs) throws IOException {
-        IndexReader reader = context.reader();
+        AtomicReader reader = context.reader();
+        // all Solr DocSets that are used as filters only include live docs
+        final Bits acceptDocs2 = acceptDocs == null ? null : (reader.getLiveDocs() == acceptDocs ? null : acceptDocs);
 
         final int base = context.docBase;
         final int maxDoc = reader.maxDoc();
@@ -759,7 +762,7 @@ public class SortedIntDocSet extends Doc
             return null;
           }
 
-        }, acceptDocs);
+        }, acceptDocs2);
       }
     };
   }