You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/02/08 04:26:21 UTC
svn commit: r1443834 [14/16] - in /lucene/dev/branches/branch_4x: ./
dev-tools/ lucene/ lucene/analysis/
lucene/analysis/icu/src/java/org/apache/lucene/collation/
lucene/analysis/icu/src/test/org/apache/lucene/collation/ lucene/backwards/
lucene/benchm...
Modified: lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Fri Feb 8 03:26:14 2013
@@ -35,21 +35,21 @@ import org.apache.lucene.analysis.tokena
import org.apache.lucene.analysis.tokenattributes.TermToBytesRefAttribute;
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.Norm;
-import org.apache.lucene.index.DocValues;
+import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.DocsAndPositionsEnum;
import org.apache.lucene.index.DocsEnum;
+import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.FieldInvertState;
import org.apache.lucene.index.Fields;
+import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.OrdTermState;
+import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.index.StoredFieldVisitor;
import org.apache.lucene.index.TermState;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.FieldInfo.IndexOptions;
-import org.apache.lucene.index.memory.MemoryIndexNormDocValues.SingleValueSource;
import org.apache.lucene.search.Collector;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
@@ -60,13 +60,13 @@ import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.ByteBlockPool;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.BytesRefHash.DirectBytesStartArray;
import org.apache.lucene.util.BytesRefHash;
+import org.apache.lucene.util.Constants; // for javadocs
import org.apache.lucene.util.Counter;
-import org.apache.lucene.util.IntBlockPool;
-import org.apache.lucene.util.BytesRefHash.DirectBytesStartArray;
import org.apache.lucene.util.IntBlockPool.SliceReader;
import org.apache.lucene.util.IntBlockPool.SliceWriter;
-import org.apache.lucene.util.Constants; // for javadocs
+import org.apache.lucene.util.IntBlockPool;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.lucene.util.RecyclingByteBlockAllocator;
import org.apache.lucene.util.RecyclingIntBlockAllocator;
@@ -738,6 +738,21 @@ public class MemoryIndex {
return new FieldInfos(fieldInfos.values().toArray(new FieldInfo[fieldInfos.size()]));
}
+ @Override
+ public NumericDocValues getNumericDocValues(String field) {
+ return null;
+ }
+
+ @Override
+ public BinaryDocValues getBinaryDocValues(String field) {
+ return null;
+ }
+
+ @Override
+ public SortedDocValues getSortedDocValues(String field) {
+ return null;
+ }
+
private class MemoryFields extends Fields {
@Override
public Iterator<String> iterator() {
@@ -1127,23 +1142,18 @@ public class MemoryIndex {
protected void doClose() {
if (DEBUG) System.err.println("MemoryIndexReader.doClose");
}
-
- @Override
- public DocValues docValues(String field) {
- return null;
- }
/** performance hack: cache norms to avoid repeated expensive calculations */
- private DocValues cachedNormValues;
+ private NumericDocValues cachedNormValues;
private String cachedFieldName;
private Similarity cachedSimilarity;
@Override
- public DocValues normValues(String field) {
+ public NumericDocValues getNormValues(String field) {
FieldInfo fieldInfo = fieldInfos.get(field);
if (fieldInfo == null || fieldInfo.omitsNorms())
return null;
- DocValues norms = cachedNormValues;
+ NumericDocValues norms = cachedNormValues;
Similarity sim = getSimilarity();
if (!field.equals(cachedFieldName) || sim != cachedSimilarity) { // not cached?
Info info = getInfo(field);
@@ -1151,15 +1161,13 @@ public class MemoryIndex {
int numOverlapTokens = info != null ? info.numOverlapTokens : 0;
float boost = info != null ? info.getBoost() : 1.0f;
FieldInvertState invertState = new FieldInvertState(field, 0, numTokens, numOverlapTokens, 0, boost);
- Norm norm = new Norm();
- sim.computeNorm(invertState, norm);
- SingleValueSource singleByteSource = new SingleValueSource(norm);
- norms = new MemoryIndexNormDocValues(singleByteSource);
+ long value = sim.computeNorm(invertState);
+ norms = new MemoryIndexNormDocValues(value);
// cache it for future reuse
cachedNormValues = norms;
cachedFieldName = field;
cachedSimilarity = sim;
- if (DEBUG) System.err.println("MemoryIndexReader.norms: " + field + ":" + norm + ":" + numTokens);
+ if (DEBUG) System.err.println("MemoryIndexReader.norms: " + field + ":" + value + ":" + numTokens);
}
return norms;
}
Modified: lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndexNormDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndexNormDocValues.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndexNormDocValues.java (original)
+++ lucene/dev/branches/branch_4x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndexNormDocValues.java Fri Feb 8 03:26:14 2013
@@ -15,129 +15,25 @@ package org.apache.lucene.index.memory;
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import java.io.IOException;
-import org.apache.lucene.index.Norm;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.index.NumericDocValues;
/**
*
* @lucene.internal
*/
-class MemoryIndexNormDocValues extends DocValues {
-
- private final Source source;
-
- MemoryIndexNormDocValues(Source source) {
- this.source = source;
- }
- @Override
- protected Source loadSource() throws IOException {
- return source;
- }
-
- @Override
- protected Source loadDirectSource() throws IOException {
- return source;
+class MemoryIndexNormDocValues extends NumericDocValues {
+ private final long value;
+ public MemoryIndexNormDocValues(long value) {
+ this.value = value;
}
@Override
- public Type getType() {
- return source.getType();
- }
-
- @Override
- public int getValueSize() {
- return 1;
- }
-
- public static class SingleValueSource extends Source {
-
- private final Number numericValue;
- private final BytesRef binaryValue;
-
- protected SingleValueSource(Norm norm) {
- super(norm.type());
- this.numericValue = norm.field().numericValue();
- this.binaryValue = norm.field().binaryValue();
- }
-
- @Override
- public long getInt(int docID) {
- switch (type) {
- case FIXED_INTS_16:
- case FIXED_INTS_32:
- case FIXED_INTS_64:
- case FIXED_INTS_8:
- case VAR_INTS:
- assert numericValue != null;
- return numericValue.longValue();
- }
- return super.getInt(docID);
- }
-
- @Override
- public double getFloat(int docID) {
- switch (type) {
- case FLOAT_32:
- case FLOAT_64:
- assert numericValue != null;
- return numericValue.floatValue();
- }
- return super.getFloat(docID);
- }
-
- @Override
- public BytesRef getBytes(int docID, BytesRef ref) {
- switch (type) {
- case BYTES_FIXED_DEREF:
- case BYTES_FIXED_SORTED:
- case BYTES_FIXED_STRAIGHT:
- case BYTES_VAR_DEREF:
- case BYTES_VAR_SORTED:
- case BYTES_VAR_STRAIGHT:
- assert binaryValue != null;
- ref.copyBytes(binaryValue);
- return ref;
- }
- return super.getBytes(docID, ref);
- }
-
- @Override
- public boolean hasArray() {
- return true;
- }
-
- @Override
- public Object getArray() {
- switch (type) {
- case BYTES_FIXED_DEREF:
- case BYTES_FIXED_SORTED:
- case BYTES_FIXED_STRAIGHT:
- case BYTES_VAR_DEREF:
- case BYTES_VAR_SORTED:
- case BYTES_VAR_STRAIGHT:
- return binaryValue.bytes;
- case FIXED_INTS_16:
- return new short[] { numericValue.shortValue() };
- case FIXED_INTS_32:
- return new int[] { numericValue.intValue() };
- case FIXED_INTS_64:
- return new long[] { numericValue.longValue() };
- case FIXED_INTS_8:
- return new byte[] { numericValue.byteValue() };
- case VAR_INTS:
- return new long[] { numericValue.longValue() };
- case FLOAT_32:
- return new float[] { numericValue.floatValue() };
- case FLOAT_64:
- return new double[] { numericValue.doubleValue() };
- default:
- throw new IllegalArgumentException("unknown type " + type);
- }
-
- }
+ public long get(int docID) {
+ if (docID != 0)
+ throw new IndexOutOfBoundsException();
+ else
+ return value;
}
}
Modified: lucene/dev/branches/branch_4x/lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java Fri Feb 8 03:26:14 2013
@@ -36,8 +36,6 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.DocValues;
-import org.apache.lucene.index.DocValues.Source;
import org.apache.lucene.index.DocsAndPositionsEnum;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.Fields;
@@ -46,6 +44,7 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.Terms;
@@ -178,12 +177,12 @@ public class MemoryIndexTest extends Bas
if (iwTerms == null) {
assertNull(memTerms);
} else {
- DocValues normValues = competitor.normValues(field);
- DocValues memNormValues = memIndexReader.normValues(field);
+ NumericDocValues normValues = competitor.getNormValues(field);
+ NumericDocValues memNormValues = memIndexReader.getNormValues(field);
if (normValues != null) {
// mem idx always computes norms on the fly
assertNotNull(memNormValues);
- assertEquals(normValues.getDirectSource().getInt(0), memNormValues.getDirectSource().getInt(0), 0.01);
+ assertEquals(normValues.get(0), memNormValues.get(0));
}
assertNotNull(memTerms);
@@ -386,8 +385,8 @@ public class MemoryIndexTest extends Bas
MockAnalyzer mockAnalyzer = new MockAnalyzer(random());
mindex.addField("field", "the quick brown fox", mockAnalyzer);
AtomicReader reader = (AtomicReader) mindex.createSearcher().getIndexReader();
- assertNull(reader.docValues("not-in-index"));
- assertNull(reader.normValues("not-in-index"));
+ assertNull(reader.getNumericDocValues("not-in-index"));
+ assertNull(reader.getNormValues("not-in-index"));
assertNull(reader.termDocsEnum(new Term("not-in-index", "foo")));
assertNull(reader.termPositionsEnum(new Term("not-in-index", "foo")));
assertNull(reader.terms("not-in-index"));
Modified: lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/misc/SweetSpotSimilarity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/misc/SweetSpotSimilarity.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/misc/SweetSpotSimilarity.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/misc/SweetSpotSimilarity.java Fri Feb 8 03:26:14 2013
@@ -19,7 +19,6 @@ package org.apache.lucene.misc;
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.Norm;
/**
* A similarity with a lengthNorm that provides for a "plateau" of
Modified: lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/test/org/apache/lucene/misc/SweetSpotSimilarityTest.java Fri Feb 8 03:26:14 2013
@@ -23,7 +23,6 @@ import org.apache.lucene.search.similari
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.search.similarities.TFIDFSimilarity;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.index.Norm;
import org.apache.lucene.index.FieldInvertState;
@@ -37,9 +36,7 @@ public class SweetSpotSimilarityTest ext
}
public static byte computeAndGetNorm(Similarity s, FieldInvertState state) {
- Norm norm = new Norm();
- s.computeNorm(state, norm);
- return norm.field().numericValue().byteValue();
+ return (byte) s.computeNorm(state);
}
public void testSweetSpotComputeNorm() {
@@ -56,10 +53,6 @@ public class SweetSpotSimilarityTest ext
invertState.setBoost(1.0f);
for (int i = 1; i < 1000; i++) {
invertState.setLength(i);
- Norm lNorm = new Norm();
- Norm rNorm = new Norm();
- d.computeNorm(invertState, lNorm);
- s.computeNorm(invertState, rNorm);
assertEquals("base case: i="+i,
computeAndGetNorm(d, invertState),
computeAndGetNorm(s, invertState),
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/docvalues/DocTermsIndexDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/docvalues/DocTermsIndexDocValues.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/docvalues/DocTermsIndexDocValues.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/docvalues/DocTermsIndexDocValues.java Fri Feb 8 03:26:14 2013
@@ -17,26 +17,29 @@
package org.apache.lucene.queries.function.docvalues;
+import java.io.IOException;
+
+import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.ValueSourceScorer;
import org.apache.lucene.search.FieldCache;
-import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRef;
import org.apache.lucene.util.UnicodeUtil;
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueStr;
-import java.io.IOException;
-
/**
- * Internal class, subject to change.
* Serves as base class for FunctionValues based on DocTermsIndex.
+ * @lucene.internal
*/
public abstract class DocTermsIndexDocValues extends FunctionValues {
- protected final FieldCache.DocTermsIndex termsIndex;
+ protected final SortedDocValues termsIndex;
+ protected final Bits valid;
protected final ValueSource vs;
protected final MutableValueStr val = new MutableValueStr();
protected final BytesRef spare = new BytesRef();
@@ -45,40 +48,42 @@ public abstract class DocTermsIndexDocVa
public DocTermsIndexDocValues(ValueSource vs, AtomicReaderContext context, String field) throws IOException {
try {
termsIndex = FieldCache.DEFAULT.getTermsIndex(context.reader(), field);
+ valid = FieldCache.DEFAULT.getDocsWithField(context.reader(), field);
} catch (RuntimeException e) {
throw new DocTermsIndexException(field, e);
}
this.vs = vs;
}
- public FieldCache.DocTermsIndex getDocTermsIndex() {
- return termsIndex;
- }
-
protected abstract String toTerm(String readableValue);
@Override
public boolean exists(int doc) {
- return termsIndex.getOrd(doc) != 0;
+ return valid.get(doc);
}
+ @Override
+ public int ordVal(int doc) {
+ return termsIndex.getOrd(doc);
+ }
+
+ @Override
+ public int numOrd() {
+ return termsIndex.getValueCount();
+ }
@Override
public boolean bytesVal(int doc, BytesRef target) {
- int ord=termsIndex.getOrd(doc);
- if (ord==0) {
- target.length = 0;
- return false;
- }
- termsIndex.lookup(ord, target);
- return true;
+ termsIndex.get(doc, target);
+ return target.length > 0;
}
@Override
public String strVal(int doc) {
- int ord=termsIndex.getOrd(doc);
- if (ord==0) return null;
- termsIndex.lookup(ord, spare);
+ termsIndex.get(doc, spare);
+ if (spare.length == 0) {
+ return null;
+ }
UnicodeUtil.UTF8toUTF16(spare, spareChars);
return spareChars.toString();
}
@@ -97,11 +102,9 @@ public abstract class DocTermsIndexDocVa
lowerVal = lowerVal == null ? null : toTerm(lowerVal);
upperVal = upperVal == null ? null : toTerm(upperVal);
- final BytesRef spare = new BytesRef();
-
int lower = Integer.MIN_VALUE;
if (lowerVal != null) {
- lower = termsIndex.binarySearchLookup(new BytesRef(lowerVal), spare);
+ lower = termsIndex.lookupTerm(new BytesRef(lowerVal));
if (lower < 0) {
lower = -lower-1;
} else if (!includeLower) {
@@ -111,7 +114,7 @@ public abstract class DocTermsIndexDocVa
int upper = Integer.MAX_VALUE;
if (upperVal != null) {
- upper = termsIndex.binarySearchLookup(new BytesRef(upperVal), spare);
+ upper = termsIndex.lookupTerm(new BytesRef(upperVal));
if (upper < 0) {
upper = -upper-2;
} else if (!includeUpper) {
@@ -148,9 +151,8 @@ public abstract class DocTermsIndexDocVa
@Override
public void fillValue(int doc) {
- int ord = termsIndex.getOrd(doc);
- mval.exists = ord != 0;
- mval.value = termsIndex.lookup(ord, mval.value);
+ termsIndex.get(doc, mval.value);
+ mval.exists = mval.value.bytes != SortedDocValues.MISSING;
}
};
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ByteFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ByteFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ByteFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ByteFieldSource.java Fri Feb 8 03:26:14 2013
@@ -51,42 +51,42 @@ public class ByteFieldSource extends Fie
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final byte[] arr = cache.getBytes(readerContext.reader(), field, parser, false);
+ final FieldCache.Bytes arr = cache.getBytes(readerContext.reader(), field, parser, false);
return new FunctionValues() {
@Override
public byte byteVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
public short shortVal(int doc) {
- return (short) arr[doc];
+ return (short) arr.get(doc);
}
@Override
public float floatVal(int doc) {
- return (float) arr[doc];
+ return (float) arr.get(doc);
}
@Override
public int intVal(int doc) {
- return (int) arr[doc];
+ return (int) arr.get(doc);
}
@Override
public long longVal(int doc) {
- return (long) arr[doc];
+ return (long) arr.get(doc);
}
@Override
public double doubleVal(int doc) {
- return (double) arr[doc];
+ return (double) arr.get(doc);
}
@Override
public String strVal(int doc) {
- return Byte.toString(arr[doc]);
+ return Byte.toString(arr.get(doc));
}
@Override
@@ -96,7 +96,7 @@ public class ByteFieldSource extends Fie
@Override
public Object objectVal(int doc) {
- return arr[doc]; // TODO: valid?
+ return arr.get(doc); // TODO: valid?
}
};
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/BytesRefFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/BytesRefFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/BytesRefFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/BytesRefFieldSource.java Fri Feb 8 03:26:14 2013
@@ -17,12 +17,18 @@ package org.apache.lucene.queries.functi
* limitations under the License.
*/
+import java.io.IOException;
+import java.util.Map;
+
import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.BinaryDocValues;
+import org.apache.lucene.index.FieldInfo;
+import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.docvalues.DocTermsIndexDocValues;
-
-import java.io.IOException;
-import java.util.Map;
+import org.apache.lucene.search.FieldCache;
+import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.BytesRef;
/**
* An implementation for retrieving {@link FunctionValues} instances for string based fields.
@@ -35,23 +41,59 @@ public class BytesRefFieldSource extends
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- return new DocTermsIndexDocValues(this, readerContext, field) {
-
- @Override
- protected String toTerm(String readableValue) {
- return readableValue;
- }
-
- @Override
- public Object objectVal(int doc) {
- return strVal(doc);
- }
-
- @Override
- public String toString(int doc) {
- return description() + '=' + strVal(doc);
- }
-
- };
+ final FieldInfo fieldInfo = readerContext.reader().getFieldInfos().fieldInfo(field);
+ // To be sorted or not to be sorted, that is the question
+ // TODO: do it cleaner?
+ if (fieldInfo != null && fieldInfo.getDocValuesType() == DocValuesType.BINARY) {
+ final BinaryDocValues binaryValues = FieldCache.DEFAULT.getTerms(readerContext.reader(), field);
+ return new FunctionValues() {
+
+ @Override
+ public boolean exists(int doc) {
+ return true; // doc values are dense
+ }
+
+ @Override
+ public boolean bytesVal(int doc, BytesRef target) {
+ binaryValues.get(doc, target);
+ return target.length > 0;
+ }
+
+ public String strVal(int doc) {
+ final BytesRef bytes = new BytesRef();
+ return bytesVal(doc, bytes)
+ ? bytes.utf8ToString()
+ : null;
+ }
+
+ @Override
+ public Object objectVal(int doc) {
+ return strVal(doc);
+ }
+
+ @Override
+ public String toString(int doc) {
+ return description() + '=' + strVal(doc);
+ }
+ };
+ } else {
+ return new DocTermsIndexDocValues(this, readerContext, field) {
+
+ @Override
+ protected String toTerm(String readableValue) {
+ return readableValue;
+ }
+
+ @Override
+ public Object objectVal(int doc) {
+ return strVal(doc);
+ }
+
+ @Override
+ public String toString(int doc) {
+ return description() + '=' + strVal(doc);
+ }
+ };
+ }
}
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java Fri Feb 8 03:26:14 2013
@@ -58,12 +58,12 @@ public class DoubleFieldSource extends F
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final double[] arr = cache.getDoubles(readerContext.reader(), field, parser, true);
+ final FieldCache.Doubles arr = cache.getDoubles(readerContext.reader(), field, parser, true);
final Bits valid = cache.getDocsWithField(readerContext.reader(), field);
return new DoubleDocValues(this) {
@Override
public double doubleVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
@@ -132,7 +132,6 @@ public class DoubleFieldSource extends F
@Override
public ValueFiller getValueFiller() {
return new ValueFiller() {
- private final double[] doubleArr = arr;
private final MutableValueDouble mval = new MutableValueDouble();
@Override
@@ -142,7 +141,7 @@ public class DoubleFieldSource extends F
@Override
public void fillValue(int doc) {
- mval.value = doubleArr[doc];
+ mval.value = arr.get(doc);
mval.exists = valid.get(doc);
}
};
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java Fri Feb 8 03:26:14 2013
@@ -56,18 +56,18 @@ public class FloatFieldSource extends Fi
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final float[] arr = cache.getFloats(readerContext.reader(), field, parser, true);
+ final FieldCache.Floats arr = cache.getFloats(readerContext.reader(), field, parser, true);
final Bits valid = cache.getDocsWithField(readerContext.reader(), field);
return new FloatDocValues(this) {
@Override
public float floatVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
public Object objectVal(int doc) {
- return valid.get(doc) ? arr[doc] : null;
+ return valid.get(doc) ? arr.get(doc) : null;
}
@Override
@@ -78,7 +78,6 @@ public class FloatFieldSource extends Fi
@Override
public ValueFiller getValueFiller() {
return new ValueFiller() {
- private final float[] floatArr = arr;
private final MutableValueFloat mval = new MutableValueFloat();
@Override
@@ -88,7 +87,7 @@ public class FloatFieldSource extends Fi
@Override
public void fillValue(int doc) {
- mval.value = floatArr[doc];
+ mval.value = arr.get(doc);
mval.exists = valid.get(doc);
}
};
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java Fri Feb 8 03:26:14 2013
@@ -57,7 +57,7 @@ public class IntFieldSource extends Fiel
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final int[] arr = cache.getInts(readerContext.reader(), field, parser, true);
+ final FieldCache.Ints arr = cache.getInts(readerContext.reader(), field, parser, true);
final Bits valid = cache.getDocsWithField(readerContext.reader(), field);
return new IntDocValues(this) {
@@ -65,32 +65,32 @@ public class IntFieldSource extends Fiel
@Override
public float floatVal(int doc) {
- return (float)arr[doc];
+ return (float)arr.get(doc);
}
@Override
public int intVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
public long longVal(int doc) {
- return (long)arr[doc];
+ return (long)arr.get(doc);
}
@Override
public double doubleVal(int doc) {
- return (double)arr[doc];
+ return (double)arr.get(doc);
}
@Override
public String strVal(int doc) {
- return Float.toString(arr[doc]);
+ return Float.toString(arr.get(doc));
}
@Override
public Object objectVal(int doc) {
- return valid.get(doc) ? arr[doc] : null;
+ return valid.get(doc) ? arr.get(doc) : null;
}
@Override
@@ -129,7 +129,7 @@ public class IntFieldSource extends Fiel
return new ValueSourceScorer(reader, this) {
@Override
public boolean matchesValue(int doc) {
- int val = arr[doc];
+ int val = arr.get(doc);
// only check for deleted if it's the default value
// if (val==0 && reader.isDeleted(doc)) return false;
return val >= ll && val <= uu;
@@ -140,7 +140,6 @@ public class IntFieldSource extends Fiel
@Override
public ValueFiller getValueFiller() {
return new ValueFiller() {
- private final int[] intArr = arr;
private final MutableValueInt mval = new MutableValueInt();
@Override
@@ -150,7 +149,7 @@ public class IntFieldSource extends Fiel
@Override
public void fillValue(int doc) {
- mval.value = intArr[doc];
+ mval.value = arr.get(doc);
mval.exists = valid.get(doc);
}
};
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/JoinDocFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/JoinDocFreqValueSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/JoinDocFreqValueSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/JoinDocFreqValueSource.java Fri Feb 8 03:26:14 2013
@@ -21,6 +21,7 @@ import java.io.IOException;
import java.util.Map;
import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.index.ReaderUtil;
@@ -28,7 +29,6 @@ import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.docvalues.IntDocValues;
-import org.apache.lucene.search.FieldCache.DocTerms;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.packed.PackedInts;
@@ -56,7 +56,7 @@ public class JoinDocFreqValueSource exte
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException
{
- final DocTerms terms = cache.getTerms(readerContext.reader(), field, PackedInts.FAST);
+ final BinaryDocValues terms = cache.getTerms(readerContext.reader(), field, PackedInts.FAST);
final IndexReader top = ReaderUtil.getTopLevelContext(readerContext).reader();
Terms t = MultiFields.getTerms(top, qfield);
final TermsEnum termsEnum = t == null ? TermsEnum.EMPTY : t.iterator(null);
@@ -68,7 +68,7 @@ public class JoinDocFreqValueSource exte
public int intVal(int doc)
{
try {
- terms.getTerm(doc, ref);
+ terms.get(doc, ref);
if (termsEnum.seekExact(ref, true)) {
return termsEnum.docFreq();
} else {
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java Fri Feb 8 03:26:14 2013
@@ -66,13 +66,13 @@ public class LongFieldSource extends Fie
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final long[] arr = cache.getLongs(readerContext.reader(), field, parser, true);
+ final FieldCache.Longs arr = cache.getLongs(readerContext.reader(), field, parser, true);
final Bits valid = cache.getDocsWithField(readerContext.reader(), field);
return new LongDocValues(this) {
@Override
public long longVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
@@ -82,7 +82,7 @@ public class LongFieldSource extends Fie
@Override
public Object objectVal(int doc) {
- return valid.get(doc) ? longToObject(arr[doc]) : null;
+ return valid.get(doc) ? longToObject(arr.get(doc)) : null;
}
@Override
@@ -111,7 +111,7 @@ public class LongFieldSource extends Fie
return new ValueSourceScorer(reader, this) {
@Override
public boolean matchesValue(int doc) {
- long val = arr[doc];
+ long val = arr.get(doc);
// only check for deleted if it's the default value
// if (val==0 && reader.isDeleted(doc)) return false;
return val >= ll && val <= uu;
@@ -122,7 +122,6 @@ public class LongFieldSource extends Fie
@Override
public ValueFiller getValueFiller() {
return new ValueFiller() {
- private final long[] longArr = arr;
private final MutableValueLong mval = newMutableValueLong();
@Override
@@ -132,7 +131,7 @@ public class LongFieldSource extends Fie
@Override
public void fillValue(int doc) {
- mval.value = longArr[doc];
+ mval.value = arr.get(doc);
mval.exists = valid.get(doc);
}
};
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java Fri Feb 8 03:26:14 2013
@@ -18,7 +18,7 @@
package org.apache.lucene.queries.function.valuesource;
import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.DocValues;
+import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.FloatDocValues;
@@ -62,18 +62,16 @@ public class NormValueSource extends Val
if (similarity == null) {
throw new UnsupportedOperationException("requires a TFIDFSimilarity (such as DefaultSimilarity)");
}
- DocValues dv = readerContext.reader().normValues(field);
+ final NumericDocValues norms = readerContext.reader().getNormValues(field);
- if (dv == null) {
+ if (norms == null) {
return new ConstDoubleDocValues(0.0, this);
}
- final byte[] norms = (byte[]) dv.getSource().getArray();
-
return new FloatDocValues(this) {
@Override
public float floatVal(int doc) {
- return similarity.decodeNormValue(norms[doc]);
+ return similarity.decodeNormValue((byte)norms.get(doc));
}
};
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/OrdFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/OrdFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/OrdFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/OrdFieldSource.java Fri Feb 8 03:26:14 2013
@@ -17,12 +17,16 @@
package org.apache.lucene.queries.function.valuesource;
+import java.io.IOException;
+import java.util.Map;
+
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.IntDocValues;
@@ -30,9 +34,6 @@ import org.apache.lucene.search.FieldCac
import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueInt;
-import java.io.IOException;
-import java.util.Map;
-
/**
* Obtains the ordinal of the field value from the default Lucene {@link org.apache.lucene.search.FieldCache} using getStringIndex().
* <br>
@@ -72,7 +73,7 @@ public class OrdFieldSource extends Valu
final AtomicReader r = topReader instanceof CompositeReader
? new SlowCompositeReaderWrapper((CompositeReader)topReader)
: (AtomicReader) topReader;
- final FieldCache.DocTermsIndex sindex = FieldCache.DEFAULT.getTermsIndex(r, field);
+ final SortedDocValues sindex = FieldCache.DEFAULT.getTermsIndex(r, field);
return new IntDocValues(this) {
protected String toTerm(String readableValue) {
return readableValue;
@@ -87,7 +88,7 @@ public class OrdFieldSource extends Valu
}
@Override
public int numOrd() {
- return sindex.numOrd();
+ return sindex.getValueCount();
}
@Override
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ReverseOrdFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ReverseOrdFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ReverseOrdFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ReverseOrdFieldSource.java Fri Feb 8 03:26:14 2013
@@ -17,20 +17,21 @@
package org.apache.lucene.queries.function.valuesource;
+import java.io.IOException;
+import java.util.Map;
+
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.IntDocValues;
import org.apache.lucene.search.FieldCache;
-import java.io.IOException;
-import java.util.Map;
-
/**
* Obtains the ordinal of the field value from the default Lucene {@link org.apache.lucene.search.FieldCache} using getTermsIndex()
* and reverses the order.
@@ -73,13 +74,13 @@ public class ReverseOrdFieldSource exten
: (AtomicReader) topReader;
final int off = readerContext.docBase;
- final FieldCache.DocTermsIndex sindex = FieldCache.DEFAULT.getTermsIndex(r, field);
- final int end = sindex.numOrd();
+ final SortedDocValues sindex = FieldCache.DEFAULT.getTermsIndex(r, field);
+ final int end = sindex.getValueCount();
return new IntDocValues(this) {
@Override
public int intVal(int doc) {
- return (end - sindex.getOrd(doc+off));
+ return (end - sindex.getOrd(doc+off) - 1);
}
};
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ShortFieldSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ShortFieldSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ShortFieldSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/ShortFieldSource.java Fri Feb 8 03:26:14 2013
@@ -49,42 +49,42 @@ public class ShortFieldSource extends Fi
@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
- final short[] arr = cache.getShorts(readerContext.reader(), field, parser, false);
+ final FieldCache.Shorts arr = cache.getShorts(readerContext.reader(), field, parser, false);
return new FunctionValues() {
@Override
public byte byteVal(int doc) {
- return (byte) arr[doc];
+ return (byte) arr.get(doc);
}
@Override
public short shortVal(int doc) {
- return arr[doc];
+ return arr.get(doc);
}
@Override
public float floatVal(int doc) {
- return (float) arr[doc];
+ return (float) arr.get(doc);
}
@Override
public int intVal(int doc) {
- return (int) arr[doc];
+ return (int) arr.get(doc);
}
@Override
public long longVal(int doc) {
- return (long) arr[doc];
+ return (long) arr.get(doc);
}
@Override
public double doubleVal(int doc) {
- return (double) arr[doc];
+ return (double) arr.get(doc);
}
@Override
public String strVal(int doc) {
- return Short.toString(arr[doc]);
+ return Short.toString(arr.get(doc));
}
@Override
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/TestCustomScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/TestCustomScoreQuery.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/TestCustomScoreQuery.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/TestCustomScoreQuery.java Fri Feb 8 03:26:14 2013
@@ -183,12 +183,12 @@ public class TestCustomScoreQuery extend
@Override
protected CustomScoreProvider getCustomScoreProvider(AtomicReaderContext context) throws IOException {
- final int[] values = FieldCache.DEFAULT.getInts(context.reader(), INT_FIELD, false);
+ final FieldCache.Ints values = FieldCache.DEFAULT.getInts(context.reader(), INT_FIELD, false);
return new CustomScoreProvider(context) {
@Override
public float customScore(int doc, float subScore, float valSrcScore) {
assertTrue(doc <= context.reader().maxDoc());
- return values[doc];
+ return values.get(doc);
}
};
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestDocValuesFieldSources.java Fri Feb 8 03:26:14 2013
@@ -18,29 +18,20 @@ package org.apache.lucene.queries.functi
*/
import java.io.IOException;
-import java.util.Date;
import org.apache.lucene.analysis.MockAnalyzer;
-import org.apache.lucene.document.ByteDocValuesField;
-import org.apache.lucene.document.DerefBytesDocValuesField;
+import org.apache.lucene.document.BinaryDocValuesField;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.DoubleDocValuesField;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.FloatDocValuesField;
-import org.apache.lucene.document.IntDocValuesField;
-import org.apache.lucene.document.LongDocValuesField;
-import org.apache.lucene.document.PackedLongDocValuesField;
-import org.apache.lucene.document.ShortDocValuesField;
-import org.apache.lucene.document.SortedBytesDocValuesField;
-import org.apache.lucene.document.StraightBytesDocValuesField;
+import org.apache.lucene.document.NumericDocValuesField;
+import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.DocValues;
+import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.queries.function.valuesource.DateDocValuesFieldSource;
-import org.apache.lucene.queries.function.valuesource.NumericDocValuesFieldSource;
-import org.apache.lucene.queries.function.valuesource.StrDocValuesFieldSource;
+import org.apache.lucene.queries.function.valuesource.BytesRefFieldSource;
+import org.apache.lucene.queries.function.valuesource.LongFieldSource;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
@@ -53,51 +44,21 @@ import com.carrotsearch.randomizedtestin
@SuppressCodecs("Lucene3x")
public class TestDocValuesFieldSources extends LuceneTestCase {
- public void test(DocValues.Type type) throws IOException {
+ public void test(DocValuesType type) throws IOException {
Directory d = newDirectory();
IndexWriterConfig iwConfig = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
final int nDocs = atLeast(50);
- final Field id = new IntDocValuesField("id", 0);
+ final Field id = new NumericDocValuesField("id", 0);
final Field f;
switch (type) {
- case BYTES_FIXED_DEREF:
- f = new DerefBytesDocValuesField("dv", new BytesRef(), true);
+ case BINARY:
+ f = new BinaryDocValuesField("dv", new BytesRef());
break;
- case BYTES_FIXED_SORTED:
- f = new SortedBytesDocValuesField("dv", new BytesRef(), true);
+ case SORTED:
+ f = new SortedDocValuesField("dv", new BytesRef());
break;
- case BYTES_FIXED_STRAIGHT:
- f = new StraightBytesDocValuesField("dv", new BytesRef(), true);
- break;
- case BYTES_VAR_DEREF:
- f = new DerefBytesDocValuesField("dv", new BytesRef(), false);
- break;
- case BYTES_VAR_SORTED:
- f = new SortedBytesDocValuesField("dv", new BytesRef(), false);
- break;
- case BYTES_VAR_STRAIGHT:
- f = new StraightBytesDocValuesField("dv", new BytesRef(), false);
- break;
- case FIXED_INTS_8:
- f = new ByteDocValuesField("dv", (byte) 0);
- break;
- case FIXED_INTS_16:
- f = new ShortDocValuesField("dv", (short) 0);
- break;
- case FIXED_INTS_32:
- f = new IntDocValuesField("dv", 0);
- break;
- case FIXED_INTS_64:
- f = new LongDocValuesField("dv", 0L);
- break;
- case VAR_INTS:
- f = new PackedLongDocValuesField("dv", 0L);
- break;
- case FLOAT_32:
- f = new FloatDocValuesField("dv", 0f);
- break;
- case FLOAT_64:
- f = new DoubleDocValuesField("dv", 0d);
+ case NUMERIC:
+ f = new NumericDocValuesField("dv", 0);
break;
default:
throw new AssertionError();
@@ -110,46 +71,20 @@ public class TestDocValuesFieldSources e
RandomIndexWriter iw = new RandomIndexWriter(random(), d, iwConfig);
for (int i = 0; i < nDocs; ++i) {
- id.setIntValue(i);
+ id.setLongValue(i);
switch (type) {
- case BYTES_FIXED_DEREF:
- case BYTES_FIXED_SORTED:
- case BYTES_FIXED_STRAIGHT:
- vals[i] = _TestUtil.randomFixedByteLengthUnicodeString(random(), 10);
+ case SORTED:
+ case BINARY:
+ do {
+ vals[i] = _TestUtil.randomSimpleString(random(), 20);
+ } while (((String) vals[i]).isEmpty());
f.setBytesValue(new BytesRef((String) vals[i]));
break;
- case BYTES_VAR_DEREF:
- case BYTES_VAR_SORTED:
- case BYTES_VAR_STRAIGHT:
- vals[i] = _TestUtil.randomSimpleString(random(), 20);
- f.setBytesValue(new BytesRef((String) vals[i]));
- break;
- case FIXED_INTS_8:
- vals[i] = (byte) random().nextInt(256);
- f.setByteValue((Byte) vals[i]);
- break;
- case FIXED_INTS_16:
- vals[i] = (short) random().nextInt(1 << 16);
- f.setShortValue((Short) vals[i]);
- break;
- case FIXED_INTS_32:
- vals[i] = random().nextInt();
- f.setIntValue((Integer) vals[i]);
- break;
- case FIXED_INTS_64:
- case VAR_INTS:
+ case NUMERIC:
final int bitsPerValue = RandomInts.randomIntBetween(random(), 1, 31); // keep it an int
vals[i] = (long) random().nextInt((int) PackedInts.maxValue(bitsPerValue));
f.setLongValue((Long) vals[i]);
break;
- case FLOAT_32:
- vals[i] = random().nextFloat();
- f.setFloatValue((Float) vals[i]);
- break;
- case FLOAT_64:
- vals[i] = random().nextDouble();
- f.setDoubleValue((Double) vals[i]);
- break;
}
iw.addDocument(document);
if (random().nextBoolean() && i % 10 == 9) {
@@ -160,32 +95,15 @@ public class TestDocValuesFieldSources e
DirectoryReader rd = DirectoryReader.open(d);
for (AtomicReaderContext leave : rd.leaves()) {
- final FunctionValues ids = new NumericDocValuesFieldSource("id", false).getValues(null, leave);
+ final FunctionValues ids = new LongFieldSource("id").getValues(null, leave);
final ValueSource vs;
- final boolean direct = random().nextBoolean();
switch (type) {
- case BYTES_FIXED_DEREF:
- case BYTES_FIXED_SORTED:
- case BYTES_FIXED_STRAIGHT:
- case BYTES_VAR_DEREF:
- case BYTES_VAR_SORTED:
- case BYTES_VAR_STRAIGHT:
- vs = new StrDocValuesFieldSource("dv", direct);
- break;
- case FLOAT_32:
- case FLOAT_64:
- case FIXED_INTS_8:
- case FIXED_INTS_16:
- case FIXED_INTS_32:
- vs = new NumericDocValuesFieldSource("dv", direct);
+ case BINARY:
+ case SORTED:
+ vs = new BytesRefFieldSource("dv");
break;
- case FIXED_INTS_64:
- case VAR_INTS:
- if (random().nextBoolean()) {
- vs = new NumericDocValuesFieldSource("dv", direct);
- } else {
- vs = new DateDocValuesFieldSource("dv", direct);
- }
+ case NUMERIC:
+ vs = new LongFieldSource("dv");
break;
default:
throw new AssertionError();
@@ -194,61 +112,21 @@ public class TestDocValuesFieldSources e
BytesRef bytes = new BytesRef();
for (int i = 0; i < leave.reader().maxDoc(); ++i) {
assertTrue(values.exists(i));
- if (vs instanceof StrDocValuesFieldSource) {
+ if (vs instanceof BytesRefFieldSource) {
assertTrue(values.objectVal(i) instanceof String);
- } else if (vs instanceof NumericDocValuesFieldSource) {
- assertTrue(values.objectVal(i) instanceof Number);
- switch (type) {
- case FIXED_INTS_8:
- assertTrue(values.objectVal(i) instanceof Byte);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(1, bytes.length);
- break;
- case FIXED_INTS_16:
- assertTrue(values.objectVal(i) instanceof Short);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(2, bytes.length);
- break;
- case FIXED_INTS_32:
- assertTrue(values.objectVal(i) instanceof Integer);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(4, bytes.length);
- break;
- case FIXED_INTS_64:
- case VAR_INTS:
- assertTrue(values.objectVal(i) instanceof Long);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(8, bytes.length);
- break;
- case FLOAT_32:
- assertTrue(values.objectVal(i) instanceof Float);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(4, bytes.length);
- break;
- case FLOAT_64:
- assertTrue(values.objectVal(i) instanceof Double);
- assertTrue(values.bytesVal(i, bytes));
- assertEquals(8, bytes.length);
- break;
- default:
- throw new AssertionError();
- }
- } else if (vs instanceof DateDocValuesFieldSource) {
- assertTrue(values.objectVal(i) instanceof Date);
+ } else if (vs instanceof LongFieldSource) {
+ assertTrue(values.objectVal(i) instanceof Long);
+ assertTrue(values.bytesVal(i, bytes));
} else {
throw new AssertionError();
}
Object expected = vals[ids.intVal(i)];
switch (type) {
- case BYTES_VAR_SORTED:
- case BYTES_FIXED_SORTED:
+ case SORTED:
values.ordVal(i); // no exception
assertTrue(values.numOrd() >= 1);
- case BYTES_FIXED_DEREF:
- case BYTES_FIXED_STRAIGHT:
- case BYTES_VAR_DEREF:
- case BYTES_VAR_STRAIGHT:
+ case BINARY:
assertEquals(expected, values.objectVal(i));
assertEquals(expected, values.strVal(i));
assertEquals(expected, values.objectVal(i));
@@ -256,17 +134,7 @@ public class TestDocValuesFieldSources e
assertTrue(values.bytesVal(i, bytes));
assertEquals(new BytesRef((String) expected), bytes);
break;
- case FLOAT_32:
- assertEquals(((Number) expected).floatValue(), values.floatVal(i), 0.001);
- break;
- case FLOAT_64:
- assertEquals(((Number) expected).doubleValue(), values.doubleVal(i), 0.001d);
- break;
- case FIXED_INTS_8:
- case FIXED_INTS_16:
- case FIXED_INTS_32:
- case FIXED_INTS_64:
- case VAR_INTS:
+ case NUMERIC:
assertEquals(((Number) expected).longValue(), values.longVal(i));
break;
}
@@ -277,7 +145,7 @@ public class TestDocValuesFieldSources e
}
public void test() throws IOException {
- for (DocValues.Type type : DocValues.Type.values()) {
+ for (DocValuesType type : DocValuesType.values()) {
test(type);
}
}
Modified: lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestOrdValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestOrdValues.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestOrdValues.java (original)
+++ lucene/dev/branches/branch_4x/lucene/queries/src/test/org/apache/lucene/queries/function/TestOrdValues.java Fri Feb 8 03:26:14 2013
@@ -133,7 +133,7 @@ public class TestOrdValues extends Funct
String id = s.getIndexReader().document(sd[i].doc).get(ID_FIELD);
log("-------- " + i + ". Explain doc " + id);
log(s.explain(q, sd[i].doc));
- float expectedScore = N_DOCS - i;
+ float expectedScore = N_DOCS - i - 1;
assertEquals("score of result " + i + " shuould be " + expectedScore + " != " + score, expectedScore, score, TEST_SCORE_TOLERANCE_DELTA);
String expectedId = inOrder
? id2String(N_DOCS - i) // in-order ==> larger values first
Modified: lucene/dev/branches/branch_4x/lucene/sandbox/src/java/org/apache/lucene/sandbox/queries/SlowCollatedStringComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/sandbox/src/java/org/apache/lucene/sandbox/queries/SlowCollatedStringComparator.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/sandbox/src/java/org/apache/lucene/sandbox/queries/SlowCollatedStringComparator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/sandbox/src/java/org/apache/lucene/sandbox/queries/SlowCollatedStringComparator.java Fri Feb 8 03:26:14 2013
@@ -21,8 +21,8 @@ import java.io.IOException;
import java.text.Collator;
import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.search.FieldCache;
-import org.apache.lucene.search.FieldCache.DocTerms;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.util.BytesRef;
@@ -38,7 +38,7 @@ import org.apache.lucene.util.BytesRef;
public final class SlowCollatedStringComparator extends FieldComparator<String> {
private final String[] values;
- private DocTerms currentDocTerms;
+ private BinaryDocValues currentDocTerms;
private final String field;
final Collator collator;
private String bottom;
@@ -67,7 +67,8 @@ public final class SlowCollatedStringCom
@Override
public int compareBottom(int doc) {
- final String val2 = currentDocTerms.getTerm(doc, tempBR).utf8ToString();
+ currentDocTerms.get(doc, tempBR);
+ final String val2 = tempBR.bytes == BinaryDocValues.MISSING ? null : tempBR.utf8ToString();
if (bottom == null) {
if (val2 == null) {
return 0;
@@ -81,11 +82,11 @@ public final class SlowCollatedStringCom
@Override
public void copy(int slot, int doc) {
- final BytesRef br = currentDocTerms.getTerm(doc, tempBR);
- if (br == null) {
+ currentDocTerms.get(doc, tempBR);
+ if (tempBR.bytes == BinaryDocValues.MISSING) {
values[slot] = null;
} else {
- values[slot] = br.utf8ToString();
+ values[slot] = tempBR.utf8ToString();
}
}
@@ -121,12 +122,12 @@ public final class SlowCollatedStringCom
@Override
public int compareDocToValue(int doc, String value) {
- final BytesRef br = currentDocTerms.getTerm(doc, tempBR);
+ currentDocTerms.get(doc, tempBR);
final String docValue;
- if (br == null) {
+ if (tempBR.bytes == BinaryDocValues.MISSING) {
docValue = null;
} else {
- docValue = br.utf8ToString();
+ docValue = tempBR.utf8ToString();
}
return compareValues(docValue, value);
}
Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/SpatialStrategy.java Fri Feb 8 03:26:14 2013
@@ -41,8 +41,8 @@ import org.apache.lucene.spatial.query.S
* <li>What types of query shapes can be used?</li>
* <li>What types of query operations are supported?
* This might vary per shape.</li>
- * <li>Does it use the {@link org.apache.lucene.search.FieldCache}, {@link
- * org.apache.lucene.index.DocValues} or some other type of cache? When?
+ * <li>Does it use the {@link org.apache.lucene.search.FieldCache},
+ * or some other type of cache? When?
* </ul>
* If a strategy only supports certain shapes at index or query time, then in
* general it will throw an exception if given an incompatible one. It will not
Modified: lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java (original)
+++ lucene/dev/branches/branch_4x/lucene/spatial/src/java/org/apache/lucene/spatial/vector/DistanceValueSource.java Fri Feb 8 03:26:14 2013
@@ -63,8 +63,8 @@ public class DistanceValueSource extends
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
AtomicReader reader = readerContext.reader();
- final double[] ptX = FieldCache.DEFAULT.getDoubles(reader, strategy.getFieldNameX(), true);
- final double[] ptY = FieldCache.DEFAULT.getDoubles(reader, strategy.getFieldNameY(), true);
+ final FieldCache.Doubles ptX = FieldCache.DEFAULT.getDoubles(reader, strategy.getFieldNameX(), true);
+ final FieldCache.Doubles ptY = FieldCache.DEFAULT.getDoubles(reader, strategy.getFieldNameY(), true);
final Bits validX = FieldCache.DEFAULT.getDocsWithField(reader, strategy.getFieldNameX());
final Bits validY = FieldCache.DEFAULT.getDocsWithField(reader, strategy.getFieldNameY());
@@ -84,7 +84,7 @@ public class DistanceValueSource extends
// make sure it has minX and area
if (validX.get(doc)) {
assert validY.get(doc);
- return calculator.distance(from, ptX[doc], ptY[doc]);
+ return calculator.distance(from, ptX.get(doc), ptY.get(doc));
}
return nullValue;
}
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/BufferingTermFreqIteratorWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/BufferingTermFreqIteratorWrapper.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/BufferingTermFreqIteratorWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/BufferingTermFreqIteratorWrapper.java Fri Feb 8 03:26:14 2013
@@ -22,6 +22,7 @@ import java.util.Comparator;
import org.apache.lucene.search.spell.TermFreqIterator;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.Counter;
/**
* This wrapper buffers incoming elements.
@@ -30,7 +31,7 @@ import org.apache.lucene.util.BytesRef;
public class BufferingTermFreqIteratorWrapper implements TermFreqIterator {
// TODO keep this for now
/** buffered term entries */
- protected BytesRefList entries = new BytesRefList();
+ protected BytesRefArray entries = new BytesRefArray(Counter.newCounter());
/** current buffer position */
protected int curPos = -1;
/** buffered weights, parallel with {@link #entries} */
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/SortedTermFreqIteratorWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/SortedTermFreqIteratorWrapper.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/SortedTermFreqIteratorWrapper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/SortedTermFreqIteratorWrapper.java Fri Feb 8 03:26:14 2013
@@ -22,9 +22,8 @@ import java.io.IOException;
import java.util.Comparator;
import org.apache.lucene.search.spell.TermFreqIterator;
-import org.apache.lucene.search.suggest.fst.Sort;
-import org.apache.lucene.search.suggest.fst.Sort.ByteSequencesReader;
-import org.apache.lucene.search.suggest.fst.Sort.ByteSequencesWriter;
+import org.apache.lucene.search.suggest.Sort.ByteSequencesReader;
+import org.apache.lucene.search.suggest.Sort.ByteSequencesWriter;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ByteArrayDataOutput;
import org.apache.lucene.util.ArrayUtil;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java Fri Feb 8 03:26:14 2013
@@ -34,7 +34,7 @@ import org.apache.lucene.analysis.TokenS
import org.apache.lucene.analysis.TokenStreamToAutomaton;
import org.apache.lucene.search.spell.TermFreqIterator;
import org.apache.lucene.search.suggest.Lookup;
-import org.apache.lucene.search.suggest.fst.Sort;
+import org.apache.lucene.search.suggest.Sort;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ByteArrayDataOutput;
import org.apache.lucene.store.DataInput;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/ExternalRefSorter.java Fri Feb 8 03:26:14 2013
@@ -20,7 +20,8 @@ package org.apache.lucene.search.suggest
import java.io.*;
import java.util.Comparator;
-import org.apache.lucene.search.suggest.fst.Sort.ByteSequencesReader;
+import org.apache.lucene.search.suggest.Sort;
+import org.apache.lucene.search.suggest.Sort.ByteSequencesReader;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefIterator;
import org.apache.lucene.util.IOUtils;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionBuilder.java Fri Feb 8 03:26:14 2013
@@ -20,6 +20,7 @@ package org.apache.lucene.search.suggest
import java.io.Closeable;
import java.io.IOException;
+import org.apache.lucene.search.suggest.InMemorySorter;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefIterator;
import org.apache.lucene.util.IntsRef;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/FSTCompletionLookup.java Fri Feb 8 03:26:14 2013
@@ -26,8 +26,9 @@ import java.util.List;
import org.apache.lucene.search.spell.TermFreqIterator;
import org.apache.lucene.search.suggest.Lookup;
+import org.apache.lucene.search.suggest.Sort;
+import org.apache.lucene.search.suggest.Sort.SortInfo;
import org.apache.lucene.search.suggest.fst.FSTCompletion.Completion;
-import org.apache.lucene.search.suggest.fst.Sort.SortInfo;
import org.apache.lucene.search.suggest.tst.TSTLookup;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ByteArrayDataOutput;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/WFSTCompletionLookup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/WFSTCompletionLookup.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/WFSTCompletionLookup.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/java/org/apache/lucene/search/suggest/fst/WFSTCompletionLookup.java Fri Feb 8 03:26:14 2013
@@ -28,7 +28,7 @@ import java.util.List;
import org.apache.lucene.search.spell.TermFreqIterator;
import org.apache.lucene.search.suggest.Lookup;
import org.apache.lucene.search.suggest.SortedTermFreqIteratorWrapper;
-import org.apache.lucene.search.suggest.fst.Sort.ByteSequencesWriter;
+import org.apache.lucene.search.suggest.Sort.ByteSequencesWriter;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ByteArrayDataOutput;
import org.apache.lucene.store.InputStreamDataInput;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/BytesRefSortersTest.java Fri Feb 8 03:26:14 2013
@@ -17,6 +17,8 @@ package org.apache.lucene.search.suggest
* limitations under the License.
*/
+import org.apache.lucene.search.suggest.InMemorySorter;
+import org.apache.lucene.search.suggest.Sort;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefIterator;
import org.apache.lucene.util.LuceneTestCase;
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/LargeInputFST.java Fri Feb 8 03:26:14 2013
@@ -19,6 +19,7 @@ package org.apache.lucene.search.suggest
import java.io.*;
+import org.apache.lucene.search.suggest.Sort;
import org.apache.lucene.util.BytesRef;
/**
Modified: lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/TestSort.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/TestSort.java (original)
+++ lucene/dev/branches/branch_4x/lucene/suggest/src/test/org/apache/lucene/search/suggest/fst/TestSort.java Fri Feb 8 03:26:14 2013
@@ -22,9 +22,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
-import org.apache.lucene.search.suggest.fst.Sort.BufferSize;
-import org.apache.lucene.search.suggest.fst.Sort.ByteSequencesWriter;
-import org.apache.lucene.search.suggest.fst.Sort.SortInfo;
+import org.apache.lucene.search.suggest.Sort;
+import org.apache.lucene.search.suggest.Sort.BufferSize;
+import org.apache.lucene.search.suggest.Sort.ByteSequencesWriter;
+import org.apache.lucene.search.suggest.Sort.SortInfo;
import org.apache.lucene.util.*;
import org.junit.*;
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/appending/AppendingRWCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/appending/AppendingRWCodec.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/appending/AppendingRWCodec.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/appending/AppendingRWCodec.java Fri Feb 8 03:26:14 2013
@@ -17,13 +17,19 @@ package org.apache.lucene.codecs.appendi
* limitations under the License.
*/
+import org.apache.lucene.codecs.FilterCodec;
import org.apache.lucene.codecs.PostingsFormat;
+import org.apache.lucene.codecs.lucene40.Lucene40RWCodec;
/**
* Read-write version of AppendingCodec for testing
*/
-public class AppendingRWCodec extends AppendingCodec {
+public class AppendingRWCodec extends FilterCodec {
+ public AppendingRWCodec() {
+ super("Appending", new Lucene40RWCodec());
+ }
+
private final PostingsFormat rw = new AppendingRWPostingsFormat();
@Override
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/asserting/AssertingCodec.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/asserting/AssertingCodec.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/asserting/AssertingCodec.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/asserting/AssertingCodec.java Fri Feb 8 03:26:14 2013
@@ -17,7 +17,9 @@ package org.apache.lucene.codecs.asserti
* limitations under the License.
*/
+import org.apache.lucene.codecs.DocValuesFormat;
import org.apache.lucene.codecs.FilterCodec;
+import org.apache.lucene.codecs.NormsFormat;
import org.apache.lucene.codecs.PostingsFormat;
import org.apache.lucene.codecs.StoredFieldsFormat;
import org.apache.lucene.codecs.TermVectorsFormat;
@@ -31,6 +33,8 @@ public final class AssertingCodec extend
private final PostingsFormat postings = new AssertingPostingsFormat();
private final TermVectorsFormat vectors = new AssertingTermVectorsFormat();
private final StoredFieldsFormat storedFields = new AssertingStoredFieldsFormat();
+ private final DocValuesFormat docValues = new AssertingDocValuesFormat();
+ private final NormsFormat norms = new AssertingNormsFormat();
public AssertingCodec() {
super("Asserting", new Lucene42Codec());
@@ -50,4 +54,14 @@ public final class AssertingCodec extend
public StoredFieldsFormat storedFieldsFormat() {
return storedFields;
}
+
+ @Override
+ public DocValuesFormat docValuesFormat() {
+ return docValues;
+ }
+
+ @Override
+ public NormsFormat normsFormat() {
+ return norms;
+ }
}
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWFieldInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWFieldInfosReader.java?rev=1443834&r1=1443833&r2=1443834&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWFieldInfosReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene3x/PreFlexRWFieldInfosReader.java Fri Feb 8 03:26:14 2013
@@ -20,7 +20,7 @@ import java.util.Set;
import org.apache.lucene.codecs.FieldInfosReader;
import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.DocValues.Type;
+import org.apache.lucene.index.FieldInfo.DocValuesType;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.IndexFileNames;
@@ -87,10 +87,10 @@ class PreFlexRWFieldInfosReader extends
storePayloads = false;
}
- Type normType = isIndexed && !omitNorms ? Type.FIXED_INTS_8 : null;
+ DocValuesType normType = isIndexed && !omitNorms ? DocValuesType.NUMERIC : null;
if (format == PreFlexRWFieldInfosWriter.FORMAT_PREFLEX_RW && normType != null) {
// RW can have norms but doesn't write them
- normType = input.readByte() != 0 ? Type.FIXED_INTS_8 : null;
+ normType = input.readByte() != 0 ? DocValuesType.NUMERIC : null;
}
infos[i] = new FieldInfo(name, isIndexed, fieldNumber, storeTermVector,