You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by yo...@apache.org on 2009/07/16 22:24:23 UTC
svn commit: r794829 -
/lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java
Author: yonik
Date: Thu Jul 16 20:24:23 2009
New Revision: 794829
URL: http://svn.apache.org/viewvc?rev=794829&view=rev
Log:
fix distrib search assumption about single-segment multireaders
Modified:
lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java?rev=794829&r1=794828&r2=794829&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/component/QueryComponent.java Thu Jul 16 20:24:23 2009
@@ -191,7 +191,12 @@
SolrIndexReader reader = searcher.getReader();
SolrIndexReader[] readers = reader.getLeafReaders();
- if (readers.length==1) readers=null;
+ SolrIndexReader subReader = reader;
+ if (readers.length==1) {
+ // if there is a single segment, use that subReader and avoid looking up each time
+ subReader = readers[0];
+ readers=null;
+ }
int[] offsets = reader.getLeafOffsets();
for (SortField sortField: sortFields) {
@@ -207,7 +212,7 @@
DocList docList = rb.getResults().docList;
ArrayList<Object> vals = new ArrayList<Object>(docList.size());
DocIterator it = rb.getResults().docList.iterator();
- SolrIndexReader subReader = reader;
+
int offset = 0;
int idx = 0;