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);
}
};
}