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()) {