You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/01/05 21:47:11 UTC
svn commit: r1055636 [3/3] - in /lucene/dev/trunk: lucene/
lucene/contrib/instantiated/src/java/org/apache/lucene/store/instantiated/
lucene/contrib/memory/src/java/org/apache/lucene/index/memory/
lucene/contrib/queries/src/java/org/apache/lucene/searc...
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/request/PerSegmentSingleValuedFaceting.java Wed Jan 5 20:47:08 2011
@@ -1,5 +1,8 @@
package org.apache.solr.request;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.search.DocIdSetIterator;
@@ -67,10 +70,7 @@ class PerSegmentSingleValuedFaceting {
// reuse the translation logic to go from top level set to per-segment set
baseSet = docs.getTopFilter();
- SolrIndexReader topReader = searcher.getReader();
- final SolrIndexReader[] leafReaders = topReader.getLeafReaders();
- int[] offsets = topReader.getLeafOffsets();
-
+ final AtomicReaderContext[] leaves = searcher.getTopReaderContext().leaves();
// The list of pending tasks that aren't immediately submitted
// TODO: Is there a completion service, or a delegating executor that can
// limit the number of concurrent tasks submitted to a bigger executor?
@@ -78,8 +78,8 @@ class PerSegmentSingleValuedFaceting {
int threads = nThreads <= 0 ? Integer.MAX_VALUE : nThreads;
- for (int i=0; i<leafReaders.length; i++) {
- final SegFacet segFacet = new SegFacet(leafReaders[i], offsets[i]);
+ for (int i=0; i<leaves.length; i++) {
+ final SegFacet segFacet = new SegFacet(leaves[i]);
Callable<SegFacet> task = new Callable<SegFacet>() {
public SegFacet call() throws Exception {
@@ -101,7 +101,7 @@ class PerSegmentSingleValuedFaceting {
// now merge the per-segment results
PriorityQueue<SegFacet> queue = new PriorityQueue<SegFacet>() {
{
- initialize(leafReaders.length);
+ initialize(leaves.length);
}
@Override
protected boolean lessThan(SegFacet a, SegFacet b) {
@@ -112,7 +112,7 @@ class PerSegmentSingleValuedFaceting {
boolean hasMissingCount=false;
int missingCount=0;
- for (int i=0; i<leafReaders.length; i++) {
+ for (int i=0; i<leaves.length; i++) {
SegFacet seg = null;
try {
@@ -209,12 +209,9 @@ class PerSegmentSingleValuedFaceting {
}
class SegFacet {
- SolrIndexReader reader;
- int readerOffset;
-
- SegFacet(SolrIndexReader reader, int readerOffset) {
- this.reader = reader;
- this.readerOffset = readerOffset;
+ ReaderContext info;
+ SegFacet(ReaderContext info) {
+ this.info = info;
}
FieldCache.DocTermsIndex si;
@@ -228,7 +225,7 @@ class PerSegmentSingleValuedFaceting {
BytesRef tempBR = new BytesRef();
void countTerms() throws IOException {
- si = FieldCache.DEFAULT.getTermsIndex(reader, fieldName);
+ si = FieldCache.DEFAULT.getTermsIndex(info.reader, fieldName);
// SolrCore.log.info("reader= " + reader + " FC=" + System.identityHashCode(si));
if (prefix!=null) {
@@ -250,7 +247,7 @@ class PerSegmentSingleValuedFaceting {
// count collection array only needs to be as big as the number of terms we are
// going to collect counts for.
final int[] counts = this.counts = new int[nTerms];
- DocIdSet idSet = baseSet.getDocIdSet(reader);
+ DocIdSet idSet = baseSet.getDocIdSet(info);
DocIdSetIterator iter = idSet.iterator();
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/schema/LatLonType.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/schema/LatLonType.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/schema/LatLonType.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/schema/LatLonType.java Wed Jan 5 20:47:08 2011
@@ -19,6 +19,7 @@ package org.apache.solr.schema;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Fieldable;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.search.*;
import org.apache.lucene.spatial.DistanceUtils;
@@ -27,7 +28,6 @@ import org.apache.lucene.util.Bits;
import org.apache.solr.common.SolrException;
import org.apache.solr.response.TextResponseWriter;
import org.apache.solr.search.QParser;
-import org.apache.solr.search.SolrIndexReader;
import org.apache.solr.search.SpatialOptions;
import org.apache.solr.search.function.DocValues;
import org.apache.solr.search.function.ValueSource;
@@ -371,18 +371,13 @@ class SpatialDistanceQuery extends Query
}
@Override
- public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
- return new SpatialScorer(getSimilarity(searcher), reader, this);
+ public Scorer scorer(ReaderContext context, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
+ return new SpatialScorer(getSimilarity(searcher), context.reader, this);
}
@Override
- public Explanation explain(IndexReader reader, int doc) throws IOException {
- SolrIndexReader topReader = (SolrIndexReader)reader;
- SolrIndexReader[] subReaders = topReader.getLeafReaders();
- int[] offsets = topReader.getLeafOffsets();
- int readerPos = SolrIndexReader.readerIndex(doc, offsets);
- int readerBase = offsets[readerPos];
- return ((SpatialScorer)scorer(subReaders[readerPos], true, true)).explain(doc-readerBase);
+ public Explanation explain(ReaderContext context, int doc) throws IOException {
+ return ((SpatialScorer)scorer(context, true, true)).explain(doc);
}
}
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=1055636&r1=1055635&r2=1055636&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 Wed Jan 5 20:47:08 2011
@@ -23,6 +23,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import java.io.IOException;
@@ -246,8 +247,9 @@ abstract class DocSetBase implements Doc
return new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(ReaderContext ctx) throws IOException {
int offset = 0;
+ IndexReader reader = ctx.reader;
SolrIndexReader r = (SolrIndexReader)reader;
while (r.getParent() != null) {
offset += r.getBase();
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrConstantScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrConstantScoreQuery.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrConstantScoreQuery.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrConstantScoreQuery.java Wed Jan 5 20:47:08 2011
@@ -2,6 +2,7 @@ package org.apache.solr.search;
import org.apache.lucene.search.*;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.solr.search.function.ValueSource;
import org.apache.solr.common.SolrException;
@@ -89,14 +90,14 @@ public class SolrConstantScoreQuery exte
}
@Override
- public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
- return new ConstantScorer(similarity, reader, this);
+ public Scorer scorer(ReaderContext context, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
+ return new ConstantScorer(similarity, context, this);
}
@Override
- public Explanation explain(IndexReader reader, int doc) throws IOException {
+ public Explanation explain(ReaderContext context, int doc) throws IOException {
- ConstantScorer cs = new ConstantScorer(similarity, reader, this);
+ ConstantScorer cs = new ConstantScorer(similarity, context, this);
boolean exists = cs.docIdSetIterator.advance(doc) == doc;
ComplexExplanation result = new ComplexExplanation();
@@ -123,10 +124,10 @@ public class SolrConstantScoreQuery exte
final float theScore;
int doc = -1;
- public ConstantScorer(Similarity similarity, IndexReader reader, ConstantWeight w) throws IOException {
+ public ConstantScorer(Similarity similarity, ReaderContext info, ConstantWeight w) throws IOException {
super(similarity);
theScore = w.getValue();
- DocIdSet docIdSet = filter instanceof SolrFilter ? ((SolrFilter)filter).getDocIdSet(w.context, reader) : filter.getDocIdSet(reader);
+ DocIdSet docIdSet = filter instanceof SolrFilter ? ((SolrFilter)filter).getDocIdSet(w.context, info) : filter.getDocIdSet(info);
if (docIdSet == null) {
docIdSetIterator = DocIdSet.EMPTY_DOCIDSET.iterator();
} else {
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrFilter.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrFilter.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrFilter.java Wed Jan 5 20:47:08 2011
@@ -21,6 +21,7 @@ import org.apache.lucene.search.Filter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import java.util.Map;
import java.io.IOException;
@@ -37,10 +38,10 @@ public abstract class SolrFilter extends
* The context object will be passed to getDocIdSet() where this info can be retrieved. */
public abstract void createWeight(Map context, IndexSearcher searcher) throws IOException;
- public abstract DocIdSet getDocIdSet(Map context, IndexReader reader) throws IOException;
+ public abstract DocIdSet getDocIdSet(Map context, ReaderContext readerContext) throws IOException;
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
- return getDocIdSet(null, reader);
+ public DocIdSet getDocIdSet(ReaderContext context) throws IOException {
+ return getDocIdSet(null, context);
}
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexReader.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexReader.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexReader.java Wed Jan 5 20:47:08 2011
@@ -19,12 +19,14 @@ package org.apache.solr.search;
import org.apache.lucene.index.*;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.FieldSelector;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.ReaderUtil;
import java.io.IOException;
import java.util.Collection;
@@ -40,6 +42,7 @@ public class SolrIndexReader extends Fil
private int[] leafOffsets;
private final SolrIndexReader parent;
private final int base; // docid offset of this reader within parent
+ private final ReaderContext topLevelContext;
private static int[] zeroIntArray = new int[]{0};
@@ -79,7 +82,7 @@ public class SolrIndexReader extends Fil
leafReaders = new SolrIndexReader[]{this};
leafOffsets = zeroIntArray;
}
-
+ topLevelContext = ReaderUtil.buildReaderContext(this);
}
private SolrIndexReader[] getLeaves(int numLeaves) {
@@ -364,11 +367,6 @@ public class SolrIndexReader extends Fil
}
@Override
- public int getSubReaderDocBase(IndexReader subReader) {
- return in.getSubReaderDocBase(subReader);
- }
-
- @Override
public int hashCode() {
return in.hashCode();
}
@@ -493,6 +491,11 @@ public class SolrIndexReader extends Fil
public int getTermInfosIndexDivisor() {
return in.getTermInfosIndexDivisor();
}
+
+ @Override
+ public ReaderContext getTopReaderContext() {
+ return topLevelContext;
+ }
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/SolrIndexSearcher.java Wed Jan 5 20:47:08 2011
@@ -904,7 +904,7 @@ public class SolrIndexSearcher extends I
* This method is not cache-aware and no caches are checked.
*/
public DocSet convertFilter(Filter lfilter) throws IOException {
- DocIdSet docSet = lfilter.getDocIdSet(this.reader);
+ DocIdSet docSet = lfilter.getDocIdSet(this.reader.getTopReaderContext());
OpenBitSet obs = new OpenBitSet();
DocIdSetIterator it = docSet.iterator();
int doc;
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=1055636&r1=1055635&r2=1055636&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 Wed Jan 5 20:47:08 2011
@@ -22,6 +22,7 @@ import org.apache.lucene.search.DocIdSet
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Filter;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import java.io.IOException;
@@ -551,8 +552,9 @@ public class SortedIntDocSet extends Doc
int lastEndIdx = 0;
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(ReaderContext context) throws IOException {
int offset = 0;
+ IndexReader reader = context.reader;
SolrIndexReader r = (SolrIndexReader)reader;
while (r.getParent() != null) {
offset += r.getBase();
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/BoostedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/BoostedQuery.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/BoostedQuery.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/BoostedQuery.java Wed Jan 5 20:47:08 2011
@@ -19,6 +19,7 @@ package org.apache.solr.search.function;
import org.apache.lucene.search.*;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.util.ToStringUtils;
import org.apache.solr.search.SolrIndexReader;
@@ -91,33 +92,26 @@ public class BoostedQuery extends Query
}
@Override
- public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
- Scorer subQueryScorer = qWeight.scorer(reader, true, false);
+ public Scorer scorer(ReaderContext context, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
+ Scorer subQueryScorer = qWeight.scorer(context, true, false);
if(subQueryScorer == null) {
return null;
}
- return new BoostedQuery.CustomScorer(getSimilarity(searcher), searcher, reader, this, subQueryScorer, boostVal);
+ return new BoostedQuery.CustomScorer(getSimilarity(searcher), searcher, context.reader, this, subQueryScorer, boostVal);
}
@Override
- public Explanation explain(IndexReader reader, int doc) throws IOException {
- SolrIndexReader topReader = (SolrIndexReader)reader;
- SolrIndexReader[] subReaders = topReader.getLeafReaders();
- int[] offsets = topReader.getLeafOffsets();
- int readerPos = SolrIndexReader.readerIndex(doc, offsets);
- int readerBase = offsets[readerPos];
-
- Explanation subQueryExpl = qWeight.explain(reader,doc);
+ public Explanation explain(ReaderContext readerContext, int doc) throws IOException {
+ Explanation subQueryExpl = qWeight.explain(readerContext,doc);
if (!subQueryExpl.isMatch()) {
return subQueryExpl;
}
-
- DocValues vals = boostVal.getValues(context, subReaders[readerPos]);
- float sc = subQueryExpl.getValue() * vals.floatVal(doc-readerBase);
+ DocValues vals = boostVal.getValues(context, readerContext.reader);
+ float sc = subQueryExpl.getValue() * vals.floatVal(doc);
Explanation res = new ComplexExplanation(
true, sc, BoostedQuery.this.toString() + ", product of:");
res.addDetail(subQueryExpl);
- res.addDetail(vals.explain(doc-readerBase));
+ res.addDetail(vals.explain(doc));
return res;
}
}
@@ -168,7 +162,7 @@ public class BoostedQuery extends Query
}
public Explanation explain(int doc) throws IOException {
- Explanation subQueryExpl = weight.qWeight.explain(reader,doc);
+ Explanation subQueryExpl = weight.qWeight.explain(reader.getTopReaderContext() ,doc);
if (!subQueryExpl.isMatch()) {
return subQueryExpl;
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/FunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/FunctionQuery.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/FunctionQuery.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/FunctionQuery.java Wed Jan 5 20:47:08 2011
@@ -18,10 +18,10 @@
package org.apache.solr.search.function;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.search.*;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.util.Bits;
-import org.apache.solr.search.SolrIndexReader;
import java.io.IOException;
import java.util.Set;
@@ -94,18 +94,13 @@ public class FunctionQuery extends Query
}
@Override
- public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
- return new AllScorer(getSimilarity(searcher), reader, this);
+ public Scorer scorer(ReaderContext context, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
+ return new AllScorer(getSimilarity(searcher), context, this);
}
@Override
- public Explanation explain(IndexReader reader, int doc) throws IOException {
- SolrIndexReader topReader = (SolrIndexReader)reader;
- SolrIndexReader[] subReaders = topReader.getLeafReaders();
- int[] offsets = topReader.getLeafOffsets();
- int readerPos = SolrIndexReader.readerIndex(doc, offsets);
- int readerBase = offsets[readerPos];
- return ((AllScorer)scorer(subReaders[readerPos], true, true)).explain(doc-readerBase);
+ public Explanation explain(ReaderContext context, int doc) throws IOException {
+ return ((AllScorer)scorer(context, true, true)).explain(doc);
}
}
@@ -119,16 +114,18 @@ public class FunctionQuery extends Query
final boolean hasDeletions;
final Bits delDocs;
- public AllScorer(Similarity similarity, IndexReader reader, FunctionWeight w) throws IOException {
+ public AllScorer(Similarity similarity, ReaderContext context, FunctionWeight w) throws IOException {
super(similarity);
this.weight = w;
this.qWeight = w.getValue();
- this.reader = reader;
+ this.reader = context.reader;
this.maxDoc = reader.maxDoc();
this.hasDeletions = reader.hasDeletions();
this.delDocs = MultiFields.getDeletedDocs(reader);
assert !hasDeletions || delDocs != null;
- vals = func.getValues(weight.context, reader);
+ Map funcContext = weight.context;
+ funcContext.put(reader, context);
+ vals = func.getValues(funcContext, reader);
}
@Override
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/QueryValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/QueryValueSource.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/QueryValueSource.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/QueryValueSource.java Wed Jan 5 20:47:08 2011
@@ -90,7 +90,7 @@ class QueryDocValues extends DocValues {
try {
if (doc < lastDocRequested) {
// out-of-order access.... reset scorer.
- scorer = weight.scorer(reader, true, false);
+ scorer = weight.scorer(reader.getTopReaderContext(), true, false);
if (scorer==null) return defVal;
scorerDoc = -1;
}
Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/function/ValueSourceRangeFilter.java Wed Jan 5 20:47:08 2011
@@ -20,7 +20,7 @@ package org.apache.solr.search.function;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.solr.search.SolrFilter;
import java.io.IOException;
@@ -49,10 +49,10 @@ public class ValueSourceRangeFilter exte
this.includeUpper = upperVal != null && includeUpper;
}
- public DocIdSet getDocIdSet(final Map context, final IndexReader reader) throws IOException {
+ public DocIdSet getDocIdSet(final Map context, final ReaderContext readerContext) throws IOException {
return new DocIdSet() {
public DocIdSetIterator iterator() throws IOException {
- return valueSource.getValues(context, reader).getRangeScorer(reader, lowerVal, upperVal, includeLower, includeUpper);
+ return valueSource.getValues(context, readerContext.reader).getRangeScorer(readerContext.reader, lowerVal, upperVal, includeLower, includeUpper);
}
};
}
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/common/util/ContentStreamTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/common/util/ContentStreamTest.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/common/util/ContentStreamTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/common/util/ContentStreamTest.java Wed Jan 5 20:47:08 2011
@@ -25,6 +25,7 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
+import java.net.ConnectException;
import java.net.URL;
import org.apache.commons.io.IOUtils;
@@ -65,12 +66,16 @@ public class ContentStreamTest extends L
{
String content = null;
URL url = new URL( "http://svn.apache.org/repos/asf/lucene/dev/trunk/" );
- InputStream in = url.openStream();
+ InputStream in = null;
try {
+ in = url.openStream();
content = IOUtils.toString( in );
- }
- finally {
- IOUtils.closeQuietly(in);
+ } catch (ConnectException ex) {
+ assumeNoException("Unable to connect to " + url + " to run the test.", ex);
+ }finally {
+ if (in != null) {
+ IOUtils.closeQuietly(in);
+ }
}
assertTrue( content.length() > 10 ); // found something...
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=1055636&r1=1055635&r2=1055636&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 Wed Jan 5 20:47:08 2011
@@ -26,6 +26,7 @@ import org.apache.lucene.util.OpenBitSet
import org.apache.lucene.util.OpenBitSetIterator;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.FilterIndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.DocIdSet;
@@ -404,6 +405,7 @@ public class TestDocSet extends LuceneTe
}
public void doFilterTest(SolrIndexReader reader) throws IOException {
+ ReaderContext topLevelContext = reader.getTopReaderContext();
OpenBitSet bs = getRandomSet(reader.maxDoc(), rand.nextInt(reader.maxDoc()+1));
DocSet a = new BitDocSet(bs);
DocSet b = getIntDocSet(bs);
@@ -412,23 +414,23 @@ public class TestDocSet extends LuceneTe
Filter fb = b.getTopFilter();
// test top-level
- DocIdSet da = fa.getDocIdSet(reader);
- DocIdSet db = fb.getDocIdSet(reader);
+ DocIdSet da = fa.getDocIdSet(topLevelContext);
+ DocIdSet db = fb.getDocIdSet(topLevelContext);
doTestIteratorEqual(da, db);
// first test in-sequence sub readers
- for (SolrIndexReader sir : reader.getLeafReaders()) {
- da = fa.getDocIdSet(sir);
- db = fb.getDocIdSet(sir);
+ for (ReaderContext readerInfo : topLevelContext.leaves()) {
+ da = fa.getDocIdSet(readerInfo);
+ db = fb.getDocIdSet(readerInfo);
doTestIteratorEqual(da, db);
}
- int nReaders = reader.getLeafReaders().length;
+ int nReaders = topLevelContext.leaves().length;
// now test out-of-sequence sub readers
for (int i=0; i<nReaders; i++) {
- SolrIndexReader sir = reader.getLeafReaders()[rand.nextInt(nReaders)];
- da = fa.getDocIdSet(sir);
- db = fb.getDocIdSet(sir);
+ ReaderContext readerInfo = topLevelContext.leaves()[rand.nextInt(nReaders)];
+ da = fa.getDocIdSet(readerInfo);
+ db = fb.getDocIdSet(readerInfo);
doTestIteratorEqual(da, db);
}
}
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestSort.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestSort.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/search/TestSort.java Wed Jan 5 20:47:08 2011
@@ -21,6 +21,7 @@ import org.apache.lucene.analysis.core.S
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.ReaderContext;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.search.*;
@@ -106,8 +107,8 @@ public class TestSort extends AbstractSo
for (int i=0; i<qiter; i++) {
Filter filt = new Filter() {
@Override
- public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
- return randSet(reader.maxDoc());
+ public DocIdSet getDocIdSet(ReaderContext context) throws IOException {
+ return randSet(context.reader.maxDoc());
}
};
Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java?rev=1055636&r1=1055635&r2=1055636&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java (original)
+++ lucene/dev/trunk/solr/src/test/org/apache/solr/update/DirectUpdateHandlerTest.java Wed Jan 5 20:47:08 2011
@@ -245,7 +245,7 @@ public class DirectUpdateHandlerTest ext
SolrQueryRequest sr = req("q","foo");
SolrIndexReader r = sr.getSearcher().getReader();
assertTrue(r.maxDoc() > r.numDocs()); // should have deletions
- assertTrue(r.getLeafReaders().length > 1); // more than 1 segment
+ assertFalse(r.getTopReaderContext().isAtomic); // more than 1 segment
sr.close();
assertU(commit("expungeDeletes","true"));
@@ -254,7 +254,7 @@ public class DirectUpdateHandlerTest ext
r = sr.getSearcher().getReader();
assertEquals(r.maxDoc(), r.numDocs()); // no deletions
assertEquals(4,r.maxDoc()); // no dups
- assertTrue(r.getLeafReaders().length > 1); // still more than 1 segment
+ assertFalse(r.getTopReaderContext().isAtomic); //still more than 1 segment
sr.close();
}