You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/07/17 11:19:03 UTC
svn commit: r1611305 - in /lucene/dev/trunk/lucene:
core/src/java/org/apache/lucene/index/FreqProxFields.java
test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
Author: mikemccand
Date: Thu Jul 17 09:19:02 2014
New Revision: 1611305
URL: http://svn.apache.org/r1611305
Log:
test seekCeil in pull postings API; fix trunk-only bug
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java
lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java?rev=1611305&r1=1611304&r2=1611305&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java Thu Jul 17 09:19:02 2014
@@ -176,9 +176,11 @@ class FreqProxFields extends Fields {
// not found:
ord = lo + 1;
- if (ord == numTerms) {
+ if (ord >= numTerms) {
return SeekStatus.END;
} else {
+ int textStart = postingsArray.textStarts[sortedTermIDs[ord]];
+ terms.bytePool.setBytesRef(scratch, textStart);
return SeekStatus.NOT_FOUND;
}
}
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java?rev=1611305&r1=1611304&r2=1611305&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java Thu Jul 17 09:19:02 2014
@@ -45,9 +45,9 @@ import org.apache.lucene.codecs.perfield
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.TermsEnum.SeekStatus;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FlushInfo;
import org.apache.lucene.store.IOContext;
@@ -57,8 +57,6 @@ import org.apache.lucene.util.Constants;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LineFileDocs;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.RamUsageEstimator;
import org.apache.lucene.util.RamUsageTester;
import org.apache.lucene.util.TestUtil;
import org.junit.AfterClass;
@@ -659,8 +657,6 @@ public abstract class BasePostingsFormat
System.out.println("\nTEST: now build index");
}
- int maxIndexOptionNoOffsets = Arrays.asList(IndexOptions.values()).indexOf(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
-
// TODO use allowPayloads
FieldInfo[] newFieldInfoArray = new FieldInfo[fields.size()];
@@ -1539,6 +1535,15 @@ public abstract class BasePostingsFormat
assertTrue(totalTermFreq <= termFreqs.get(term).totalTermFreq);
}
}
+
+ // Also test seekCeil
+ for(int iter=0;iter<10;iter++) {
+ BytesRef term = new BytesRef(TestUtil.randomRealisticUnicodeString(random()));
+ SeekStatus status = termsEnum.seekCeil(term);
+ if (status == SeekStatus.NOT_FOUND) {
+ assertTrue(term.compareTo(termsEnum.term()) < 0);
+ }
+ }
}
@Override