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 2014/06/05 17:54:52 UTC
svn commit: r1600688 [2/3] - in /lucene/dev/trunk: lucene/
lucene/codecs/src/java/org/apache/lucene/codecs/memory/
lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/
lucene/core/src/java/org/apache/lucene/codecs/
lucene/core/src/java/org/apach...
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java Thu Jun 5 15:54:49 2014
@@ -831,7 +831,7 @@ public abstract class FieldComparator<T>
if (values[slot] == null) {
values[slot] = new BytesRef();
}
- termsIndex.lookupOrd(ord, values[slot]);
+ values[slot].copyBytes(termsIndex.lookupOrd(ord));
}
ords[slot] = ord;
readerGen[slot] = currentReaderGen;
@@ -960,21 +960,25 @@ public abstract class FieldComparator<T>
// sentinels, just used internally in this comparator
private static final byte[] MISSING_BYTES = new byte[0];
- private static final byte[] NON_MISSING_BYTES = new byte[0];
-
- private BytesRef[] values;
+ // TODO: this is seriously not good, we should nuke this comparator, or
+ // instead we should represent missing as null, or use missingValue from the user...
+ // but it was always this way...
+ private final BytesRef MISSING_BYTESREF = new BytesRef(MISSING_BYTES);
+
+ private final BytesRef[] values;
+ private final BytesRef[] tempBRs;
private BinaryDocValues docTerms;
private Bits docsWithField;
private final String field;
private BytesRef bottom;
private BytesRef topValue;
- private final BytesRef tempBR = new BytesRef();
// TODO: add missing first/last support here?
/** Sole constructor. */
TermValComparator(int numHits, String field) {
values = new BytesRef[numHits];
+ tempBRs = new BytesRef[numHits];
this.field = field;
}
@@ -982,32 +986,27 @@ public abstract class FieldComparator<T>
public int compare(int slot1, int slot2) {
final BytesRef val1 = values[slot1];
final BytesRef val2 = values[slot2];
- if (val1.bytes == MISSING_BYTES) {
- if (val2.bytes == MISSING_BYTES) {
- return 0;
- }
- return -1;
- } else if (val2.bytes == MISSING_BYTES) {
- return 1;
- }
-
- return val1.compareTo(val2);
+ return compareValues(val1, val2);
}
@Override
public int compareBottom(int doc) {
- docTerms.get(doc, tempBR);
- setMissingBytes(doc, tempBR);
- return compareValues(bottom, tempBR);
+ final BytesRef comparableBytes = getComparableBytes(doc, docTerms.get(doc));
+ return compareValues(bottom, comparableBytes);
}
@Override
public void copy(int slot, int doc) {
- if (values[slot] == null) {
- values[slot] = new BytesRef();
+ final BytesRef comparableBytes = getComparableBytes(doc, docTerms.get(doc));
+ if (comparableBytes == MISSING_BYTESREF) {
+ values[slot] = MISSING_BYTESREF;
+ } else {
+ if (tempBRs[slot] == null) {
+ tempBRs[slot] = new BytesRef();
+ }
+ values[slot] = tempBRs[slot];
+ values[slot].copyBytes(comparableBytes);
}
- docTerms.get(doc, values[slot]);
- setMissingBytes(doc, values[slot]);
}
@Override
@@ -1027,6 +1026,9 @@ public abstract class FieldComparator<T>
if (value == null) {
throw new IllegalArgumentException("value cannot be null");
}
+ if (value.bytes == MISSING_BYTES) {
+ value = MISSING_BYTESREF;
+ }
topValue = value;
}
@@ -1038,12 +1040,12 @@ public abstract class FieldComparator<T>
@Override
public int compareValues(BytesRef val1, BytesRef val2) {
// missing always sorts first:
- if (val1.bytes == MISSING_BYTES) {
- if (val2.bytes == MISSING_BYTES) {
+ if (val1 == MISSING_BYTESREF) {
+ if (val2 == MISSING_BYTESREF) {
return 0;
}
return -1;
- } else if (val2.bytes == MISSING_BYTES) {
+ } else if (val2 == MISSING_BYTESREF) {
return 1;
}
return val1.compareTo(val2);
@@ -1051,20 +1053,19 @@ public abstract class FieldComparator<T>
@Override
public int compareTop(int doc) {
- docTerms.get(doc, tempBR);
- setMissingBytes(doc, tempBR);
- return compareValues(topValue, tempBR);
+ final BytesRef comparableBytes = getComparableBytes(doc, docTerms.get(doc));
+ return compareValues(topValue, comparableBytes);
}
- private void setMissingBytes(int doc, BytesRef br) {
- if (br.length == 0) {
- br.offset = 0;
- if (docsWithField.get(doc) == false) {
- br.bytes = MISSING_BYTES;
- } else {
- br.bytes = NON_MISSING_BYTES;
- }
+ /**
+ * Given a document and a term, return the term itself if it exists or
+ * {@link #MISSING_BYTESREF} otherwise.
+ */
+ private BytesRef getComparableBytes(int doc, BytesRef term) {
+ if (term.length == 0 && docsWithField.get(doc) == false) {
+ return MISSING_BYTESREF;
}
+ return term;
}
}
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java Thu Jun 5 15:54:49 2014
@@ -106,8 +106,8 @@ public class SortedSetSelector {
}
@Override
- public void lookupOrd(int ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(int ord) {
+ return in.lookupOrd(ord);
}
@Override
@@ -141,8 +141,8 @@ public class SortedSetSelector {
}
@Override
- public void lookupOrd(int ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(int ord) {
+ return in.lookupOrd(ord);
}
@Override
@@ -176,8 +176,8 @@ public class SortedSetSelector {
}
@Override
- public void lookupOrd(int ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(int ord) {
+ return in.lookupOrd(ord);
}
@Override
@@ -211,8 +211,8 @@ public class SortedSetSelector {
}
@Override
- public void lookupOrd(int ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(int ord) {
+ return in.lookupOrd(ord);
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/codecs/perfield/TestPerFieldDocValuesFormat.java Thu Jun 5 15:54:49 2014
@@ -110,7 +110,6 @@ public class TestPerFieldDocValuesFormat
Query query = new TermQuery(new Term("fieldname", "text"));
TopDocs hits = isearcher.search(query, null, 1);
assertEquals(1, hits.totalHits);
- BytesRef scratch = new BytesRef();
// Iterate through the results:
for (int i = 0; i < hits.scoreDocs.length; i++) {
StoredDocument hitDoc = isearcher.doc(hits.scoreDocs[i].doc);
@@ -119,8 +118,8 @@ public class TestPerFieldDocValuesFormat
NumericDocValues dv = ireader.leaves().get(0).reader().getNumericDocValues("dv1");
assertEquals(5, dv.get(hits.scoreDocs[i].doc));
BinaryDocValues dv2 = ireader.leaves().get(0).reader().getBinaryDocValues("dv2");
- dv2.get(hits.scoreDocs[i].doc, scratch);
- assertEquals(new BytesRef("hello world"), scratch);
+ final BytesRef term = dv2.get(hits.scoreDocs[i].doc);
+ assertEquals(new BytesRef("hello world"), term);
}
ireader.close();
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java Thu Jun 5 15:54:49 2014
@@ -80,15 +80,14 @@ public class Test2BBinaryDocValues exten
int expectedValue = 0;
for (AtomicReaderContext context : r.leaves()) {
AtomicReader reader = context.reader();
- BytesRef scratch = new BytesRef();
BinaryDocValues dv = reader.getBinaryDocValues("dv");
for (int i = 0; i < reader.maxDoc(); i++) {
bytes[0] = (byte)(expectedValue >> 24);
bytes[1] = (byte)(expectedValue >> 16);
bytes[2] = (byte)(expectedValue >> 8);
bytes[3] = (byte) expectedValue;
- dv.get(i, scratch);
- assertEquals(data, scratch);
+ final BytesRef term = dv.get(i);
+ assertEquals(data, term);
expectedValue++;
}
}
@@ -141,11 +140,10 @@ public class Test2BBinaryDocValues exten
ByteArrayDataInput input = new ByteArrayDataInput();
for (AtomicReaderContext context : r.leaves()) {
AtomicReader reader = context.reader();
- BytesRef scratch = new BytesRef(bytes);
BinaryDocValues dv = reader.getBinaryDocValues("dv");
for (int i = 0; i < reader.maxDoc(); i++) {
- dv.get(i, scratch);
- input.reset(scratch.bytes, scratch.offset, scratch.length);
+ final BytesRef term = dv.get(i);
+ input.reset(term.bytes, term.offset, term.length);
assertEquals(expectedValue % 65535, input.readVInt());
assertTrue(input.eof());
expectedValue++;
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java Thu Jun 5 15:54:49 2014
@@ -78,13 +78,12 @@ public class Test2BSortedDocValues exten
int expectedValue = 0;
for (AtomicReaderContext context : r.leaves()) {
AtomicReader reader = context.reader();
- BytesRef scratch = new BytesRef();
BinaryDocValues dv = reader.getSortedDocValues("dv");
for (int i = 0; i < reader.maxDoc(); i++) {
bytes[0] = (byte)(expectedValue >> 8);
bytes[1] = (byte) expectedValue;
- dv.get(i, scratch);
- assertEquals(data, scratch);
+ final BytesRef term = dv.get(i);
+ assertEquals(data, term);
expectedValue++;
}
}
@@ -144,8 +143,8 @@ public class Test2BSortedDocValues exten
bytes[2] = (byte) (counter >> 8);
bytes[3] = (byte) counter;
counter++;
- dv.get(i, scratch);
- assertEquals(data, scratch);
+ final BytesRef term = dv.get(i);
+ assertEquals(data, term);
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Thu Jun 5 15:54:49 2014
@@ -524,20 +524,19 @@ public class TestBackwardsCompatibility
(byte)(id >>> 24), (byte)(id >>> 16),(byte)(id >>> 8),(byte)id
};
BytesRef expectedRef = new BytesRef(bytes);
- BytesRef scratch = new BytesRef();
- dvBytesDerefFixed.get(i, scratch);
- assertEquals(expectedRef, scratch);
- dvBytesDerefVar.get(i, scratch);
- assertEquals(expectedRef, scratch);
- dvBytesSortedFixed.get(i, scratch);
- assertEquals(expectedRef, scratch);
- dvBytesSortedVar.get(i, scratch);
- assertEquals(expectedRef, scratch);
- dvBytesStraightFixed.get(i, scratch);
- assertEquals(expectedRef, scratch);
- dvBytesStraightVar.get(i, scratch);
- assertEquals(expectedRef, scratch);
+ BytesRef term = dvBytesDerefFixed.get(i);
+ assertEquals(expectedRef, term);
+ term = dvBytesDerefVar.get(i);
+ assertEquals(expectedRef, term);
+ term = dvBytesSortedFixed.get(i);
+ assertEquals(expectedRef, term);
+ term = dvBytesSortedVar.get(i);
+ assertEquals(expectedRef, term);
+ term = dvBytesStraightFixed.get(i);
+ assertEquals(expectedRef, term);
+ term = dvBytesStraightVar.get(i);
+ assertEquals(expectedRef, term);
assertEquals((double)id, Double.longBitsToDouble(dvDouble.get(i)), 0D);
assertEquals((float)id, Float.intBitsToFloat((int)dvFloat.get(i)), 0F);
@@ -549,8 +548,8 @@ public class TestBackwardsCompatibility
dvSortedSet.setDocument(i);
long ord = dvSortedSet.nextOrd();
assertEquals(SortedSetDocValues.NO_MORE_ORDS, dvSortedSet.nextOrd());
- dvSortedSet.lookupOrd(ord, scratch);
- assertEquals(expectedRef, scratch);
+ term = dvSortedSet.lookupOrd(ord);
+ assertEquals(expectedRef, term);
}
}
}
@@ -1055,9 +1054,8 @@ public class TestBackwardsCompatibility
private void assertBinaryDocValues(AtomicReader r, String f, String cf) throws IOException {
BinaryDocValues bdvf = r.getBinaryDocValues(f);
BinaryDocValues bdvcf = r.getBinaryDocValues(cf);
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(TestBinaryDocValuesUpdates.getValue(bdvcf, i, scratch ), TestBinaryDocValuesUpdates.getValue(bdvf, i, scratch)*2);
+ assertEquals(TestBinaryDocValuesUpdates.getValue(bdvcf, i), TestBinaryDocValuesUpdates.getValue(bdvf, i)*2);
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java Thu Jun 5 15:54:49 2014
@@ -59,13 +59,13 @@ import com.carrotsearch.randomizedtestin
@SuppressWarnings("resource")
public class TestBinaryDocValuesUpdates extends LuceneTestCase {
- static long getValue(BinaryDocValues bdv, int idx, BytesRef scratch) {
- bdv.get(idx, scratch);
- idx = scratch.offset;
- byte b = scratch.bytes[idx++];
+ static long getValue(BinaryDocValues bdv, int idx) {
+ BytesRef term = bdv.get(idx);
+ idx = term.offset;
+ byte b = term.bytes[idx++];
long value = b & 0x7FL;
for (int shift = 7; (b & 0x80L) != 0; shift += 7) {
- b = scratch.bytes[idx++];
+ b = term.bytes[idx++];
value |= (b & 0x7FL) << shift;
}
return value;
@@ -139,9 +139,8 @@ public class TestBinaryDocValuesUpdates
assertEquals(1, reader.leaves().size());
AtomicReader r = reader.leaves().get(0).reader();
BinaryDocValues bdv = r.getBinaryDocValues("val");
- BytesRef scratch = new BytesRef();
- assertEquals(2, getValue(bdv, 0, scratch));
- assertEquals(2, getValue(bdv, 1, scratch));
+ assertEquals(2, getValue(bdv, 0));
+ assertEquals(2, getValue(bdv, 1));
reader.close();
dir.close();
@@ -179,14 +178,13 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
}
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
BinaryDocValues bdv = r.getBinaryDocValues("val");
assertNotNull(bdv);
for (int i = 0; i < r.maxDoc(); i++) {
long expected = expectedValues[i + context.docBase];
- long actual = getValue(bdv, i, scratch);
+ long actual = getValue(bdv, i);
assertEquals(expected, actual);
}
}
@@ -222,11 +220,10 @@ public class TestBinaryDocValuesUpdates
assertNotNull(reader2);
assertTrue(reader1 != reader2);
- BytesRef scratch = new BytesRef();
BinaryDocValues bdv1 = reader1.leaves().get(0).reader().getBinaryDocValues("val");
BinaryDocValues bdv2 = reader2.leaves().get(0).reader().getBinaryDocValues("val");
- assertEquals(1, getValue(bdv1, 0, scratch));
- assertEquals(10, getValue(bdv2, 0, scratch));
+ assertEquals(1, getValue(bdv1, 0));
+ assertEquals(10, getValue(bdv2, 0));
writer.shutdown();
IOUtils.close(reader1, reader2, dir);
@@ -274,9 +271,8 @@ public class TestBinaryDocValuesUpdates
long[] expectedValues = new long[] { 1, 2, 3, 17, 5, 17};
BinaryDocValues bdv = slow.getBinaryDocValues("val");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < expectedValues.length; i++) {
- assertEquals(expectedValues[i], getValue(bdv, i, scratch));
+ assertEquals(expectedValues[i], getValue(bdv, i));
}
reader.close();
@@ -311,7 +307,7 @@ public class TestBinaryDocValuesUpdates
AtomicReader r = reader.leaves().get(0).reader();
assertFalse(r.getLiveDocs().get(0));
- assertEquals(17, getValue(r.getBinaryDocValues("val"), 1, new BytesRef()));
+ assertEquals(17, getValue(r.getBinaryDocValues("val"), 1));
reader.close();
dir.close();
@@ -345,7 +341,7 @@ public class TestBinaryDocValuesUpdates
AtomicReader r = reader.leaves().get(0).reader();
assertFalse(r.getLiveDocs().get(0));
- assertEquals(1, getValue(r.getBinaryDocValues("val"), 0, new BytesRef())); // deletes are currently applied first
+ assertEquals(1, getValue(r.getBinaryDocValues("val"), 0)); // deletes are currently applied first
reader.close();
dir.close();
@@ -379,20 +375,19 @@ public class TestBinaryDocValuesUpdates
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
SortedDocValues sdv = r.getSortedDocValues("sdv");
SortedSetDocValues ssdv = r.getSortedSetDocValues("ssdv");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
assertEquals(i, ndv.get(i));
- assertEquals(17, getValue(bdv, i, scratch));
- sdv.get(i, scratch);
- assertEquals(new BytesRef(Integer.toString(i)), scratch);
+ assertEquals(17, getValue(bdv, i));
+ BytesRef term = sdv.get(i);
+ assertEquals(new BytesRef(Integer.toString(i)), term);
ssdv.setDocument(i);
long ord = ssdv.nextOrd();
- ssdv.lookupOrd(ord, scratch);
- assertEquals(i, Integer.parseInt(scratch.utf8ToString()));
+ term = ssdv.lookupOrd(ord);
+ assertEquals(i, Integer.parseInt(term.utf8ToString()));
if (i != 0) {
ord = ssdv.nextOrd();
- ssdv.lookupOrd(ord, scratch);
- assertEquals(i * 2, Integer.parseInt(scratch.utf8ToString()));
+ term = ssdv.lookupOrd(ord);
+ assertEquals(i * 2, Integer.parseInt(term.utf8ToString()));
}
assertEquals(SortedSetDocValues.NO_MORE_ORDS, ssdv.nextOrd());
}
@@ -425,10 +420,9 @@ public class TestBinaryDocValuesUpdates
BinaryDocValues bdv1 = r.getBinaryDocValues("bdv1");
BinaryDocValues bdv2 = r.getBinaryDocValues("bdv2");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(17, getValue(bdv1, i, scratch));
- assertEquals(i, getValue(bdv2, i, scratch));
+ assertEquals(17, getValue(bdv1, i));
+ assertEquals(i, getValue(bdv2, i));
}
reader.close();
@@ -457,9 +451,8 @@ public class TestBinaryDocValuesUpdates
final DirectoryReader reader = DirectoryReader.open(dir);
AtomicReader r = reader.leaves().get(0).reader();
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(17, getValue(bdv, i, scratch));
+ assertEquals(17, getValue(bdv, i));
}
reader.close();
@@ -525,11 +518,10 @@ public class TestBinaryDocValuesUpdates
AtomicReader r = SlowCompositeReaderWrapper.wrap(reader);
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
SortedDocValues sdv = r.getSortedDocValues("sorted");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(17, getValue(bdv, i, scratch));
- sdv.get(i, scratch);
- assertEquals(new BytesRef("value"), scratch);
+ assertEquals(17, getValue(bdv, i));
+ BytesRef term = sdv.get(i);
+ assertEquals(new BytesRef("value"), term);
}
reader.close();
@@ -555,9 +547,8 @@ public class TestBinaryDocValuesUpdates
final DirectoryReader reader = DirectoryReader.open(dir);
final AtomicReader r = SlowCompositeReaderWrapper.wrap(reader);
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(3, getValue(bdv, i, scratch));
+ assertEquals(3, getValue(bdv, i));
}
reader.close();
dir.close();
@@ -624,9 +615,8 @@ public class TestBinaryDocValuesUpdates
assertNull("index should have no deletes after forceMerge", r.getLiveDocs());
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
assertNotNull(bdv);
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(value, getValue(bdv, i, scratch));
+ assertEquals(value, getValue(bdv, i));
}
reader.close();
}
@@ -656,9 +646,8 @@ public class TestBinaryDocValuesUpdates
final DirectoryReader reader = DirectoryReader.open(dir);
final AtomicReader r = SlowCompositeReaderWrapper.wrap(reader);
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(3, getValue(bdv, i, scratch));
+ assertEquals(3, getValue(bdv, i));
}
reader.close();
dir.close();
@@ -728,7 +717,6 @@ public class TestBinaryDocValuesUpdates
reader = newReader;
// System.out.println("[" + Thread.currentThread().getName() + "]: reopened reader: " + reader);
assertTrue(reader.numDocs() > 0); // we delete at most one document per round
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
// System.out.println(((SegmentReader) r).getSegmentName());
@@ -743,7 +731,7 @@ public class TestBinaryDocValuesUpdates
if (liveDocs == null || liveDocs.get(doc)) {
// System.out.println("doc=" + (doc + context.docBase) + " f='" + f + "' vslue=" + getValue(bdv, doc, scratch));
assertTrue(docsWithField.get(doc));
- assertEquals("invalid value for doc=" + doc + ", field=" + f + ", reader=" + r, fieldValues[field], getValue(bdv, doc, scratch));
+ assertEquals("invalid value for doc=" + doc + ", field=" + f + ", reader=" + r, fieldValues[field], getValue(bdv, doc));
}
}
}
@@ -793,17 +781,16 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
Bits docsWithField = r.getDocsWithField("bdv");
assertNotNull(docsWithField);
assertTrue(docsWithField.get(0));
- assertEquals(5L, getValue(bdv, 0, scratch));
+ assertEquals(5L, getValue(bdv, 0));
assertFalse(docsWithField.get(1));
- bdv.get(1, scratch);
- assertEquals(0, scratch.length);
+ BytesRef term = bdv.get(1);
+ assertEquals(0, term.length);
}
reader.close();
@@ -839,12 +826,11 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(5L, getValue(bdv, i, scratch));
+ assertEquals(5L, getValue(bdv, i));
}
}
reader.close();
@@ -869,7 +855,7 @@ public class TestBinaryDocValuesUpdates
DirectoryReader r = DirectoryReader.open(dir);
BinaryDocValues bdv = r.leaves().get(0).reader().getBinaryDocValues("f");
- assertEquals(17, getValue(bdv, 0, new BytesRef()));
+ assertEquals(17, getValue(bdv, 0));
r.close();
dir.close();
@@ -1013,7 +999,6 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
for (int i = 0; i < numFields; i++) {
@@ -1026,7 +1011,7 @@ public class TestBinaryDocValuesUpdates
if (liveDocs == null || liveDocs.get(j)) {
assertTrue(docsWithBdv.get(j));
assertTrue(docsWithControl.get(j));
- assertEquals(getValue(control, j, scratch), getValue(bdv, j, scratch) * 2);
+ assertEquals(getValue(control, j), getValue(bdv, j) * 2);
}
}
}
@@ -1053,7 +1038,6 @@ public class TestBinaryDocValuesUpdates
}
int numGens = atLeast(5);
- BytesRef scratch = new BytesRef();
for (int i = 0; i < numGens; i++) {
int doc = random().nextInt(numDocs);
Term t = new Term("id", "doc" + doc);
@@ -1065,7 +1049,7 @@ public class TestBinaryDocValuesUpdates
BinaryDocValues fbdv = r.getBinaryDocValues("f");
BinaryDocValues cfbdv = r.getBinaryDocValues("cf");
for (int j = 0; j < r.maxDoc(); j++) {
- assertEquals(getValue(cfbdv, j, scratch), getValue(fbdv, j, scratch) * 2);
+ assertEquals(getValue(cfbdv, j), getValue(fbdv, j) * 2);
}
}
reader.close();
@@ -1114,11 +1098,10 @@ public class TestBinaryDocValuesUpdates
AtomicReader r = SlowCompositeReaderWrapper.wrap(reader);
BinaryDocValues f1 = r.getBinaryDocValues("f1");
BinaryDocValues f2 = r.getBinaryDocValues("f2");
- BytesRef scratch = new BytesRef();
- assertEquals(12L, getValue(f1, 0, scratch));
- assertEquals(13L, getValue(f2, 0, scratch));
- assertEquals(17L, getValue(f1, 1, scratch));
- assertEquals(2L, getValue(f2, 1, scratch));
+ assertEquals(12L, getValue(f1, 0));
+ assertEquals(13L, getValue(f2, 0));
+ assertEquals(17L, getValue(f1, 1));
+ assertEquals(2L, getValue(f2, 1));
reader.close();
dir.close();
}
@@ -1167,13 +1150,12 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir2);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
BinaryDocValues control = r.getBinaryDocValues("control");
for (int i = 0; i < r.maxDoc(); i++) {
- assertEquals(getValue(bdv, i, scratch)*2, getValue(control, i, scratch));
+ assertEquals(getValue(bdv, i)*2, getValue(control, i));
}
}
reader.close();
@@ -1263,14 +1245,13 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
for (int i = 0; i < numBinaryFields; i++) {
AtomicReader r = context.reader();
BinaryDocValues f = r.getBinaryDocValues("f" + i);
BinaryDocValues cf = r.getBinaryDocValues("cf" + i);
for (int j = 0; j < r.maxDoc(); j++) {
- assertEquals("reader=" + r + ", field=f" + i + ", doc=" + j, getValue(cf, j, scratch), getValue(f, j, scratch) * 2);
+ assertEquals("reader=" + r + ", field=f" + i + ", doc=" + j, getValue(cf, j), getValue(f, j) * 2);
}
}
}
@@ -1298,9 +1279,8 @@ public class TestBinaryDocValuesUpdates
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
- assertEquals(4, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0, scratch));
- assertEquals(3, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f2"), 0, scratch));
+ assertEquals(4, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0));
+ assertEquals(3, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f2"), 0));
reader.close();
dir.close();
@@ -1324,7 +1304,7 @@ public class TestBinaryDocValuesUpdates
DirectoryReader reader = DirectoryReader.open(dir);
assertEquals(1, reader.leaves().size());
- assertEquals(2L, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0, new BytesRef()));
+ assertEquals(2L, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0));
reader.close();
dir.close();
@@ -1346,7 +1326,7 @@ public class TestBinaryDocValuesUpdates
DirectoryReader reader = DirectoryReader.open(dir);
assertEquals(1, reader.leaves().size());
- assertEquals(1L, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0, new BytesRef()));
+ assertEquals(1L, getValue(reader.leaves().get(0).reader().getBinaryDocValues("f1"), 0));
reader.close();
dir.close();
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesFormat.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesFormat.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesFormat.java Thu Jun 5 15:54:49 2014
@@ -19,7 +19,6 @@ package org.apache.lucene.index;
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.util.TestUtil;
-import org.apache.lucene.util.TestUtil;
/** Tests the codec configuration defined by LuceneTestCase randomly
* (typically a mix across different fields).
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java Thu Jun 5 15:54:49 2014
@@ -177,13 +177,12 @@ public class TestDocValuesIndexing exten
DirectoryReader r = w.getReader();
BinaryDocValues s = DocValues.getSorted(getOnlySegmentReader(r), "field");
- BytesRef bytes1 = new BytesRef();
- s.get(0, bytes1);
+ BytesRef bytes1 = s.get(0);
assertEquals(bytes.length, bytes1.length);
bytes[0] = 0;
assertEquals(b, bytes1);
- s.get(1, bytes1);
+ bytes1 = s.get(1);
assertEquals(bytes.length, bytes1.length);
bytes[0] = 1;
assertEquals(b, bytes1);
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Thu Jun 5 15:54:49 2014
@@ -2091,7 +2091,7 @@ public class TestIndexWriterExceptions e
for (int i = 0; i < reader.maxDoc(); i++) {
if (liveDocs == null || liveDocs.get(i)) {
assertEquals("doc=" + (docBase + i), cf.get(i), f.get(i) * 2);
- assertEquals("doc=" + (docBase + i), TestBinaryDocValuesUpdates.getValue(bcf, i, scratch), TestBinaryDocValuesUpdates.getValue(bf, i, scratch) * 2);
+ assertEquals("doc=" + (docBase + i), TestBinaryDocValuesUpdates.getValue(bcf, i), TestBinaryDocValuesUpdates.getValue(bf, i) * 2);
}
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java Thu Jun 5 15:54:49 2014
@@ -116,7 +116,6 @@ public class TestMixedDocValuesUpdates e
reader = newReader;
// System.out.println("[" + Thread.currentThread().getName() + "]: reopened reader: " + reader);
assertTrue(reader.numDocs() > 0); // we delete at most one document per round
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
AtomicReader r = context.reader();
// System.out.println(((SegmentReader) r).getSegmentName());
@@ -141,7 +140,7 @@ public class TestMixedDocValuesUpdates e
if (field < numNDVFields) {
assertEquals("invalid value for doc=" + doc + ", field=" + f + ", reader=" + r, fieldValues[field], ndv.get(doc));
} else {
- assertEquals("invalid value for doc=" + doc + ", field=" + f + ", reader=" + r, fieldValues[field], TestBinaryDocValuesUpdates.getValue(bdv, doc, scratch));
+ assertEquals("invalid value for doc=" + doc + ", field=" + f + ", reader=" + r, fieldValues[field], TestBinaryDocValuesUpdates.getValue(bdv, doc));
}
}
}
@@ -275,7 +274,7 @@ public class TestMixedDocValuesUpdates e
assertTrue(docsWithBdv.get(j));
assertTrue(docsWithControl.get(j));
long ctrlValue = control.get(j);
- long bdvValue = TestBinaryDocValuesUpdates.getValue(bdv, j, scratch) * 2;
+ long bdvValue = TestBinaryDocValuesUpdates.getValue(bdv, j) * 2;
// if (ctrlValue != bdvValue) {
// System.out.println("seg=" + r + ", f=f" + i + ", doc=" + j + ", group=" + r.document(j).get("updKey") + ", ctrlValue=" + ctrlValue + ", bdvBytes=" + scratch);
// }
@@ -306,7 +305,6 @@ public class TestMixedDocValuesUpdates e
}
int numGens = atLeast(5);
- BytesRef scratch = new BytesRef();
for (int i = 0; i < numGens; i++) {
int doc = random().nextInt(numDocs);
Term t = new Term("id", "doc" + doc);
@@ -319,7 +317,7 @@ public class TestMixedDocValuesUpdates e
BinaryDocValues fbdv = r.getBinaryDocValues("f");
NumericDocValues cfndv = r.getNumericDocValues("cf");
for (int j = 0; j < r.maxDoc(); j++) {
- assertEquals(cfndv.get(j), TestBinaryDocValuesUpdates.getValue(fbdv, j, scratch) * 2);
+ assertEquals(cfndv.get(j), TestBinaryDocValuesUpdates.getValue(fbdv, j) * 2);
}
}
reader.close();
@@ -381,14 +379,13 @@ public class TestMixedDocValuesUpdates e
writer.shutdown();
DirectoryReader reader = DirectoryReader.open(dir);
- BytesRef scratch = new BytesRef();
for (AtomicReaderContext context : reader.leaves()) {
for (int i = 0; i < numBinaryFields; i++) {
AtomicReader r = context.reader();
BinaryDocValues f = r.getBinaryDocValues("f" + i);
NumericDocValues cf = r.getNumericDocValues("cf" + i);
for (int j = 0; j < r.maxDoc(); j++) {
- assertEquals("reader=" + r + ", field=f" + i + ", doc=" + j, cf.get(j), TestBinaryDocValuesUpdates.getValue(f, j, scratch) * 2);
+ assertEquals("reader=" + r + ", field=f" + i + ", doc=" + j, cf.get(j), TestBinaryDocValuesUpdates.getValue(f, j) * 2);
}
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java Thu Jun 5 15:54:49 2014
@@ -96,11 +96,9 @@ public class TestMultiDocValues extends
BinaryDocValues multi = MultiDocValues.getBinaryValues(ir, "bytes");
BinaryDocValues single = merged.getBinaryDocValues("bytes");
- BytesRef actual = new BytesRef();
- BytesRef expected = new BytesRef();
for (int i = 0; i < numDocs; i++) {
- single.get(i, expected);
- multi.get(i, actual);
+ final BytesRef expected = BytesRef.deepCopyOf(single.get(i));
+ final BytesRef actual = multi.get(i);
assertEquals(expected, actual);
}
ir.close();
@@ -139,14 +137,12 @@ public class TestMultiDocValues extends
SortedDocValues multi = MultiDocValues.getSortedValues(ir, "bytes");
SortedDocValues single = merged.getSortedDocValues("bytes");
assertEquals(single.getValueCount(), multi.getValueCount());
- BytesRef actual = new BytesRef();
- BytesRef expected = new BytesRef();
for (int i = 0; i < numDocs; i++) {
// check ord
assertEquals(single.getOrd(i), multi.getOrd(i));
// check value
- single.get(i, expected);
- multi.get(i, actual);
+ final BytesRef expected = BytesRef.deepCopyOf(single.get(i));
+ final BytesRef actual = multi.get(i);
assertEquals(expected, actual);
}
ir.close();
@@ -183,14 +179,12 @@ public class TestMultiDocValues extends
SortedDocValues multi = MultiDocValues.getSortedValues(ir, "bytes");
SortedDocValues single = merged.getSortedDocValues("bytes");
assertEquals(single.getValueCount(), multi.getValueCount());
- BytesRef actual = new BytesRef();
- BytesRef expected = new BytesRef();
for (int i = 0; i < numDocs; i++) {
// check ord
assertEquals(single.getOrd(i), multi.getOrd(i));
// check ord value
- single.get(i, expected);
- multi.get(i, actual);
+ final BytesRef expected = BytesRef.deepCopyOf(single.get(i));
+ final BytesRef actual = multi.get(i);
assertEquals(expected, actual);
}
ir.close();
@@ -230,12 +224,10 @@ public class TestMultiDocValues extends
assertNull(single);
} else {
assertEquals(single.getValueCount(), multi.getValueCount());
- BytesRef actual = new BytesRef();
- BytesRef expected = new BytesRef();
// check values
for (long i = 0; i < single.getValueCount(); i++) {
- single.lookupOrd(i, expected);
- multi.lookupOrd(i, actual);
+ final BytesRef expected = BytesRef.deepCopyOf(single.lookupOrd(i));
+ final BytesRef actual = multi.lookupOrd(i);
assertEquals(expected, actual);
}
// check ord list
@@ -295,12 +287,10 @@ public class TestMultiDocValues extends
assertNull(single);
} else {
assertEquals(single.getValueCount(), multi.getValueCount());
- BytesRef actual = new BytesRef();
- BytesRef expected = new BytesRef();
// check values
for (long i = 0; i < single.getValueCount(); i++) {
- single.lookupOrd(i, expected);
- multi.lookupOrd(i, actual);
+ final BytesRef expected = BytesRef.deepCopyOf(single.lookupOrd(i));
+ final BytesRef actual = multi.lookupOrd(i);
assertEquals(expected, actual);
}
// check ord list
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java Thu Jun 5 15:54:49 2014
@@ -356,21 +356,20 @@ public class TestNumericDocValuesUpdates
BinaryDocValues bdv = r.getBinaryDocValues("bdv");
SortedDocValues sdv = r.getSortedDocValues("sdv");
SortedSetDocValues ssdv = r.getSortedSetDocValues("ssdv");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
assertEquals(17, ndv.get(i));
- bdv.get(i, scratch);
- assertEquals(new BytesRef(Integer.toString(i)), scratch);
- sdv.get(i, scratch);
- assertEquals(new BytesRef(Integer.toString(i)), scratch);
+ BytesRef term = bdv.get(i);
+ assertEquals(new BytesRef(Integer.toString(i)), term);
+ term = sdv.get(i);
+ assertEquals(new BytesRef(Integer.toString(i)), term);
ssdv.setDocument(i);
long ord = ssdv.nextOrd();
- ssdv.lookupOrd(ord, scratch);
- assertEquals(i, Integer.parseInt(scratch.utf8ToString()));
+ term = ssdv.lookupOrd(ord);
+ assertEquals(i, Integer.parseInt(term.utf8ToString()));
if (i != 0) {
ord = ssdv.nextOrd();
- ssdv.lookupOrd(ord, scratch);
- assertEquals(i * 2, Integer.parseInt(scratch.utf8ToString()));
+ term = ssdv.lookupOrd(ord);
+ assertEquals(i * 2, Integer.parseInt(term.utf8ToString()));
}
assertEquals(SortedSetDocValues.NO_MORE_ORDS, ssdv.nextOrd());
}
@@ -504,11 +503,10 @@ public class TestNumericDocValuesUpdates
AtomicReader r = SlowCompositeReaderWrapper.wrap(reader);
NumericDocValues ndv = r.getNumericDocValues("ndv");
SortedDocValues sdv = r.getSortedDocValues("sorted");
- BytesRef scratch = new BytesRef();
for (int i = 0; i < r.maxDoc(); i++) {
assertEquals(17, ndv.get(i));
- sdv.get(i, scratch);
- assertEquals(new BytesRef("value"), scratch);
+ final BytesRef term = sdv.get(i);
+ assertEquals(new BytesRef("value"), term);
}
reader.close();
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/TestElevationComparator.java Thu Jun 5 15:54:49 2014
@@ -148,7 +148,6 @@ class ElevationComparatorSource extends
SortedDocValues idIndex;
private final int[] values = new int[numHits];
- private final BytesRef tempBR = new BytesRef();
int bottomVal;
@Override
@@ -171,8 +170,8 @@ class ElevationComparatorSource extends
if (ord == -1) {
return 0;
} else {
- idIndex.lookupOrd(ord, tempBR);
- Integer prio = priority.get(tempBR);
+ final BytesRef term = idIndex.lookupOrd(ord);
+ Integer prio = priority.get(term);
return prio == null ? 0 : prio.intValue();
}
}
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/DefaultSortedSetDocValuesReaderState.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/DefaultSortedSetDocValuesReaderState.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/DefaultSortedSetDocValuesReaderState.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/DefaultSortedSetDocValuesReaderState.java Thu Jun 5 15:54:49 2014
@@ -73,17 +73,16 @@ public class DefaultSortedSetDocValuesRe
// each term/ord it's assigning as it goes...
String lastDim = null;
int startOrd = -1;
- BytesRef spare = new BytesRef();
// TODO: this approach can work for full hierarchy?;
// TaxoReader can't do this since ords are not in
// "sorted order" ... but we should generalize this to
// support arbitrary hierarchy:
for(int ord=0;ord<valueCount;ord++) {
- dv.lookupOrd(ord, spare);
- String[] components = FacetsConfig.stringToPath(spare.utf8ToString());
+ final BytesRef term = dv.lookupOrd(ord);
+ String[] components = FacetsConfig.stringToPath(term.utf8ToString());
if (components.length != 2) {
- throw new IllegalArgumentException("this class can only handle 2 level hierarchy (dim/value); got: " + Arrays.toString(components) + " " + spare.utf8ToString());
+ throw new IllegalArgumentException("this class can only handle 2 level hierarchy (dim/value); got: " + Arrays.toString(components) + " " + term.utf8ToString());
}
if (!components[0].equals(lastDim)) {
if (lastDim != null) {
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java Thu Jun 5 15:54:49 2014
@@ -131,13 +131,11 @@ public class SortedSetDocValuesFacetCoun
return null;
}
- BytesRef scratch = new BytesRef();
-
LabelAndValue[] labelValues = new LabelAndValue[q.size()];
for(int i=labelValues.length-1;i>=0;i--) {
TopOrdAndIntQueue.OrdAndValue ordAndValue = q.pop();
- dv.lookupOrd(ordAndValue.ord, scratch);
- String[] parts = FacetsConfig.stringToPath(scratch.utf8ToString());
+ final BytesRef term = dv.lookupOrd(ordAndValue.ord);
+ String[] parts = FacetsConfig.stringToPath(term.utf8ToString());
labelValues[i] = new LabelAndValue(parts[1], ordAndValue.value);
}
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java Thu Jun 5 15:54:49 2014
@@ -46,17 +46,15 @@ public class DocValuesOrdinalsReader ext
public OrdinalsSegmentReader getReader(AtomicReaderContext context) throws IOException {
BinaryDocValues values0 = context.reader().getBinaryDocValues(field);
if (values0 == null) {
- values0 = DocValues.EMPTY_BINARY;
+ values0 = DocValues.emptyBinary();
}
final BinaryDocValues values = values0;
return new OrdinalsSegmentReader() {
- private final BytesRef bytes = new BytesRef(32);
-
@Override
public void get(int docID, IntsRef ordinals) throws IOException {
- values.get(docID, bytes);
+ final BytesRef bytes = values.get(docID);
decode(bytes, ordinals);
}
};
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/FastTaxonomyFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/FastTaxonomyFacetCounts.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/FastTaxonomyFacetCounts.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/FastTaxonomyFacetCounts.java Thu Jun 5 15:54:49 2014
@@ -55,17 +55,16 @@ public class FastTaxonomyFacetCounts ext
if (dv == null) { // this reader does not have DocValues for the requested category list
continue;
}
-
- BytesRef scratch = new BytesRef();
+
DocIdSetIterator docs = hits.bits.iterator();
int doc;
while ((doc = docs.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
- dv.get(doc, scratch);
- byte[] bytes = scratch.bytes;
- int end = scratch.offset + scratch.length;
+ final BytesRef bytesRef = dv.get(doc);
+ byte[] bytes = bytesRef.bytes;
+ int end = bytesRef.offset + bytesRef.length;
int ord = 0;
- int offset = scratch.offset;
+ int offset = bytesRef.offset;
int prev = 0;
while (offset < end) {
byte b = bytes[offset++];
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumFloatAssociations.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumFloatAssociations.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumFloatAssociations.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumFloatAssociations.java Thu Jun 5 15:54:49 2014
@@ -54,8 +54,7 @@ public class TaxonomyFacetSumFloatAssoci
if (dv == null) { // this reader does not have DocValues for the requested category list
continue;
}
-
- BytesRef scratch = new BytesRef();
+
DocIdSetIterator docs = hits.bits.iterator();
int doc;
@@ -63,10 +62,10 @@ public class TaxonomyFacetSumFloatAssoci
//System.out.println(" doc=" + doc);
// TODO: use OrdinalsReader? we'd need to add a
// BytesRef getAssociation()?
- dv.get(doc, scratch);
- byte[] bytes = scratch.bytes;
- int end = scratch.offset + scratch.length;
- int offset = scratch.offset;
+ final BytesRef bytesRef = dv.get(doc);
+ byte[] bytes = bytesRef.bytes;
+ int end = bytesRef.offset + bytesRef.length;
+ int offset = bytesRef.offset;
while (offset < end) {
int ord = ((bytes[offset]&0xFF) << 24) |
((bytes[offset+1]&0xFF) << 16) |
Modified: lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumIntAssociations.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumIntAssociations.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumIntAssociations.java (original)
+++ lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/TaxonomyFacetSumIntAssociations.java Thu Jun 5 15:54:49 2014
@@ -54,8 +54,7 @@ public class TaxonomyFacetSumIntAssociat
if (dv == null) { // this reader does not have DocValues for the requested category list
continue;
}
-
- BytesRef scratch = new BytesRef();
+
DocIdSetIterator docs = hits.bits.iterator();
int doc;
@@ -63,10 +62,10 @@ public class TaxonomyFacetSumIntAssociat
//System.out.println(" doc=" + doc);
// TODO: use OrdinalsReader? we'd need to add a
// BytesRef getAssociation()?
- dv.get(doc, scratch);
- byte[] bytes = scratch.bytes;
- int end = scratch.offset + scratch.length;
- int offset = scratch.offset;
+ final BytesRef bytesRef = dv.get(doc);
+ byte[] bytes = bytesRef.bytes;
+ int end = bytesRef.offset + bytesRef.length;
+ int offset = bytesRef.offset;
while (offset < end) {
int ord = ((bytes[offset]&0xFF) << 24) |
((bytes[offset+1]&0xFF) << 16) |
Modified: lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupHeadsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupHeadsCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupHeadsCollector.java (original)
+++ lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupHeadsCollector.java Thu Jun 5 15:54:49 2014
@@ -47,7 +47,6 @@ public abstract class TermAllGroupHeadsC
private static final int DEFAULT_INITIAL_SIZE = 128;
final String groupField;
- final BytesRef scratchBytesRef = new BytesRef();
SortedDocValues groupIndex;
AtomicReaderContext readerContext;
@@ -134,17 +133,17 @@ public abstract class TermAllGroupHeadsC
@Override
protected void retrieveGroupHeadAndAddIfNotExist(int doc) throws IOException {
final int ord = groupIndex.getOrd(doc);
- final BytesRef groupValue;
+ BytesRef groupValue;
if (ord == -1) {
groupValue = null;
} else {
- groupIndex.lookupOrd(ord, scratchBytesRef);
- groupValue = scratchBytesRef;
+ groupValue = groupIndex.lookupOrd(ord);
}
GroupHead groupHead = groups.get(groupValue);
if (groupHead == null) {
+ groupValue = groupValue == null ? null : BytesRef.deepCopyOf(groupValue);
groupHead = new GroupHead(groupValue, sortWithinGroup, doc);
- groups.put(groupValue == null ? null : BytesRef.deepCopyOf(groupValue), groupHead);
+ groups.put(groupValue, groupHead);
temporalResult.stop = true;
} else {
temporalResult.stop = false;
@@ -183,7 +182,6 @@ public abstract class TermAllGroupHeadsC
final FieldComparator<?>[] comparators;
- @SuppressWarnings({"unchecked","rawtypes"})
private GroupHead(BytesRef groupValue, Sort sort, int doc) throws IOException {
super(groupValue, doc + readerContext.docBase);
final SortField[] sortFields = sort.getSort();
@@ -254,12 +252,11 @@ public abstract class TermAllGroupHeadsC
GroupHead groupHead;
if (!ordSet.exists(key)) {
ordSet.put(key);
- BytesRef term;
+ final BytesRef term;
if (key == -1) {
term = null;
} else {
- term = new BytesRef();
- groupIndex.lookupOrd(key, term);
+ term = BytesRef.deepCopyOf(groupIndex.lookupOrd(key));
}
groupHead = new GroupHead(doc, term);
collectedGroups.add(groupHead);
@@ -332,7 +329,7 @@ public abstract class TermAllGroupHeadsC
sortOrds[i] = sortsIndex[i].getOrd(doc);
sortValues[i] = new BytesRef();
if (sortOrds[i] != -1) {
- sortsIndex[i].get(doc, sortValues[i]);
+ sortValues[i].copyBytes(sortsIndex[i].get(doc));
}
}
}
@@ -351,12 +348,8 @@ public abstract class TermAllGroupHeadsC
} else {
if (sortOrds[compIDX] < 0) {
// The current segment doesn't contain the sort value we encountered before. Therefore the ord is negative.
- if (sortsIndex[compIDX].getOrd(doc) == -1) {
- scratchBytesRef.length = 0;
- } else {
- sortsIndex[compIDX].get(doc, scratchBytesRef);
- }
- return sortValues[compIDX].compareTo(scratchBytesRef);
+ final BytesRef term = sortsIndex[compIDX].get(doc);
+ return sortValues[compIDX].compareTo(term);
} else {
return sortOrds[compIDX] - sortsIndex[compIDX].getOrd(doc);
}
@@ -370,11 +363,7 @@ public abstract class TermAllGroupHeadsC
scores[i] = scorer.score();
} else {
sortOrds[i] = sortsIndex[i].getOrd(doc);
- if (sortOrds[i] == -1) {
- sortValues[i].length = 0;
- } else {
- sortsIndex[i].get(doc, sortValues[i]);
- }
+ sortValues[i].copyBytes(sortsIndex[i].get(doc));
}
}
this.doc = doc + readerContext.docBase;
@@ -422,12 +411,11 @@ public abstract class TermAllGroupHeadsC
GroupHead groupHead;
if (!ordSet.exists(key)) {
ordSet.put(key);
- BytesRef term;
+ final BytesRef term;
if (key == -1) {
term = null;
} else {
- term = new BytesRef();
- groupIndex.lookupOrd(key, term);
+ term = BytesRef.deepCopyOf(groupIndex.lookupOrd(key));
}
groupHead = new GroupHead(doc, term);
collectedGroups.add(groupHead);
@@ -487,9 +475,7 @@ public abstract class TermAllGroupHeadsC
for (int i = 0; i < sortsIndex.length; i++) {
sortOrds[i] = sortsIndex[i].getOrd(doc);
sortValues[i] = new BytesRef();
- if (sortOrds[i] != -1) {
- sortsIndex[i].get(doc, sortValues[i]);
- }
+ sortValues[i].copyBytes(sortsIndex[i].get(doc));
}
}
@@ -497,12 +483,8 @@ public abstract class TermAllGroupHeadsC
public int compare(int compIDX, int doc) throws IOException {
if (sortOrds[compIDX] < 0) {
// The current segment doesn't contain the sort value we encountered before. Therefore the ord is negative.
- if (sortsIndex[compIDX].getOrd(doc) == -1) {
- scratchBytesRef.length = 0;
- } else {
- sortsIndex[compIDX].get(doc, scratchBytesRef);
- }
- return sortValues[compIDX].compareTo(scratchBytesRef);
+ final BytesRef term = sortsIndex[compIDX].get(doc);
+ return sortValues[compIDX].compareTo(term);
} else {
return sortOrds[compIDX] - sortsIndex[compIDX].getOrd(doc);
}
@@ -512,11 +494,7 @@ public abstract class TermAllGroupHeadsC
public void updateDocHead(int doc) throws IOException {
for (int i = 0; i < sortsIndex.length; i++) {
sortOrds[i] = sortsIndex[i].getOrd(doc);
- if (sortOrds[i] == -1) {
- sortValues[i].length = 0;
- } else {
- sortsIndex[i].lookupOrd(sortOrds[i], sortValues[i]);
- }
+ sortValues[i].copyBytes(sortsIndex[i].get(doc));
}
this.doc = doc + readerContext.docBase;
}
@@ -565,12 +543,11 @@ public abstract class TermAllGroupHeadsC
GroupHead groupHead;
if (!ordSet.exists(key)) {
ordSet.put(key);
- BytesRef term;
+ final BytesRef term;
if (key == -1) {
term = null;
} else {
- term = new BytesRef();
- groupIndex.lookupOrd(key, term);
+ term = BytesRef.deepCopyOf(groupIndex.lookupOrd(key));
}
groupHead = new GroupHead(doc, term);
collectedGroups.add(groupHead);
Modified: lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupsCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupsCollector.java (original)
+++ lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermAllGroupsCollector.java Thu Jun 5 15:54:49 2014
@@ -20,7 +20,6 @@ package org.apache.lucene.search.groupin
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.search.LeafCollector;
import org.apache.lucene.search.grouping.AbstractAllGroupsCollector;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.SentinelIntSet;
@@ -87,12 +86,11 @@ public class TermAllGroupsCollector exte
int key = index.getOrd(doc);
if (!ordSet.exists(key)) {
ordSet.put(key);
- BytesRef term;
+ final BytesRef term;
if (key == -1) {
term = null;
} else {
- term = new BytesRef();
- index.lookupOrd(key, term);
+ term = BytesRef.deepCopyOf(index.lookupOrd(key));
}
groups.add(term);
}
Modified: lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermDistinctValuesCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermDistinctValuesCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermDistinctValuesCollector.java (original)
+++ lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermDistinctValuesCollector.java Thu Jun 5 15:54:49 2014
@@ -20,7 +20,6 @@ package org.apache.lucene.search.groupin
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.search.LeafCollector;
import org.apache.lucene.search.grouping.AbstractDistinctValuesCollector;
import org.apache.lucene.search.grouping.SearchGroup;
import org.apache.lucene.util.BytesRef;
@@ -80,9 +79,8 @@ public class TermDistinctValuesCollector
if (countOrd == -1) {
gc.uniqueValues.add(null);
} else {
- BytesRef br = new BytesRef();
- countFieldTermIndex.lookupOrd(countOrd, br);
- gc.uniqueValues.add(br);
+ BytesRef term = BytesRef.deepCopyOf(countFieldTermIndex.lookupOrd(countOrd));
+ gc.uniqueValues.add(term);
}
gc.ords = Arrays.copyOf(gc.ords, gc.ords.length + 1);
Modified: lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermFirstPassGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermFirstPassGroupingCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermFirstPassGroupingCollector.java (original)
+++ lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermFirstPassGroupingCollector.java Thu Jun 5 15:54:49 2014
@@ -22,7 +22,6 @@ import java.io.IOException;
import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.SortedDocValues;
-import org.apache.lucene.search.LeafCollector;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.grouping.AbstractFirstPassGroupingCollector;
import org.apache.lucene.util.BytesRef;
@@ -36,7 +35,6 @@ import org.apache.lucene.util.BytesRef;
*/
public class TermFirstPassGroupingCollector extends AbstractFirstPassGroupingCollector<BytesRef> {
- private final BytesRef scratchBytesRef = new BytesRef();
private SortedDocValues index;
private String groupField;
@@ -68,8 +66,7 @@ public class TermFirstPassGroupingCollec
if (ord == -1) {
return null;
} else {
- index.lookupOrd(ord, scratchBytesRef);
- return scratchBytesRef;
+ return index.lookupOrd(ord);
}
}
Modified: lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java (original)
+++ lucene/dev/trunk/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java Thu Jun 5 15:54:49 2014
@@ -107,16 +107,14 @@ public abstract class TermGroupFacetColl
if (groupOrd == -1) {
groupKey = null;
} else {
- groupKey = new BytesRef();
- groupFieldTermsIndex.lookupOrd(groupOrd, groupKey);
+ groupKey = BytesRef.deepCopyOf(groupFieldTermsIndex.lookupOrd(groupOrd));
}
BytesRef facetKey;
if (facetOrd == -1) {
facetKey = null;
} else {
- facetKey = new BytesRef();
- facetFieldTermsIndex.lookupOrd(facetOrd, facetKey);
+ facetKey = BytesRef.deepCopyOf(facetFieldTermsIndex.lookupOrd(facetOrd));
}
groupedFacetHits.add(new GroupedFacetHit(groupKey, facetKey));
@@ -224,8 +222,7 @@ public abstract class TermGroupFacetColl
if (groupOrd == -1) {
groupKey = null;
} else {
- groupKey = new BytesRef();
- groupFieldTermsIndex.lookupOrd(groupOrd, groupKey);
+ groupKey = BytesRef.deepCopyOf(groupFieldTermsIndex.lookupOrd(groupOrd));
}
groupedFacetHits.add(new GroupedFacetHit(groupKey, null));
return;
@@ -263,16 +260,14 @@ public abstract class TermGroupFacetColl
if (groupOrd == -1) {
groupKey = null;
} else {
- groupKey = new BytesRef();
- groupFieldTermsIndex.lookupOrd(groupOrd, groupKey);
+ groupKey = BytesRef.deepCopyOf(groupFieldTermsIndex.lookupOrd(groupOrd));
}
final BytesRef facetValue;
if (facetOrd == facetFieldNumTerms) {
facetValue = null;
} else {
- facetFieldDocTermOrds.lookupOrd(facetOrd, scratch);
- facetValue = BytesRef.deepCopyOf(scratch); // must we?
+ facetValue = BytesRef.deepCopyOf(facetFieldDocTermOrds.lookupOrd(facetOrd));
}
groupedFacetHits.add(new GroupedFacetHit(groupKey, facetValue));
}
Modified: lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java (original)
+++ lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsCollector.java Thu Jun 5 15:54:49 2014
@@ -23,9 +23,6 @@ import org.apache.lucene.index.AtomicRea
import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.SortedSetDocValues;
-import org.apache.lucene.search.LeafCollector;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefHash;
@@ -78,8 +75,8 @@ abstract class TermsCollector extends Si
docTermOrds.setDocument(doc);
long ord;
while ((ord = docTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
- docTermOrds.lookupOrd(ord, scratch);
- collectorTerms.add(scratch);
+ final BytesRef term = docTermOrds.lookupOrd(ord);
+ collectorTerms.add(term);
}
}
@@ -101,8 +98,8 @@ abstract class TermsCollector extends Si
@Override
public void collect(int doc) throws IOException {
- fromDocTerms.get(doc, spare);
- collectorTerms.add(spare);
+ final BytesRef term = fromDocTerms.get(doc);
+ collectorTerms.add(term);
}
@Override
Modified: lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java (original)
+++ lucene/dev/trunk/lucene/join/src/java/org/apache/lucene/search/join/TermsWithScoreCollector.java Thu Jun 5 15:54:49 2014
@@ -93,7 +93,6 @@ abstract class TermsWithScoreCollector e
// impl that works with single value per document
static class SV extends TermsWithScoreCollector {
- final BytesRef spare = new BytesRef();
BinaryDocValues fromDocTerms;
SV(String field, ScoreMode scoreMode) {
@@ -102,8 +101,7 @@ abstract class TermsWithScoreCollector e
@Override
public void collect(int doc) throws IOException {
- fromDocTerms.get(doc, spare);
- int ord = collectedTerms.add(spare);
+ int ord = collectedTerms.add(fromDocTerms.get(doc));
if (ord < 0) {
ord = -ord - 1;
} else {
@@ -144,8 +142,7 @@ abstract class TermsWithScoreCollector e
@Override
public void collect(int doc) throws IOException {
- fromDocTerms.get(doc, spare);
- int ord = collectedTerms.add(spare);
+ int ord = collectedTerms.add(fromDocTerms.get(doc));
if (ord < 0) {
ord = -ord - 1;
} else {
@@ -183,7 +180,6 @@ abstract class TermsWithScoreCollector e
static class MV extends TermsWithScoreCollector {
SortedSetDocValues fromDocTermOrds;
- final BytesRef scratch = new BytesRef();
MV(String field, ScoreMode scoreMode) {
super(field, scoreMode);
@@ -194,9 +190,7 @@ abstract class TermsWithScoreCollector e
fromDocTermOrds.setDocument(doc);
long ord;
while ((ord = fromDocTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
- fromDocTermOrds.lookupOrd(ord, scratch);
-
- int termID = collectedTerms.add(scratch);
+ int termID = collectedTerms.add(fromDocTermOrds.lookupOrd(ord));
if (termID < 0) {
termID = -termID - 1;
} else {
@@ -233,9 +227,7 @@ abstract class TermsWithScoreCollector e
fromDocTermOrds.setDocument(doc);
long ord;
while ((ord = fromDocTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
- fromDocTermOrds.lookupOrd(ord, scratch);
-
- int termID = collectedTerms.add(scratch);
+ int termID = collectedTerms.add(fromDocTermOrds.lookupOrd(ord));
if (termID < 0) {
termID = -termID - 1;
} else {
Modified: lucene/dev/trunk/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java (original)
+++ lucene/dev/trunk/lucene/join/src/test/org/apache/lucene/search/join/TestJoinUtil.java Thu Jun 5 15:54:49 2014
@@ -662,14 +662,13 @@ public class TestJoinUtil extends Lucene
private Scorer scorer;
private SortedSetDocValues docTermOrds;
- final BytesRef joinValue = new BytesRef();
@Override
public void collect(int doc) throws IOException {
docTermOrds.setDocument(doc);
long ord;
while ((ord = docTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
- docTermOrds.lookupOrd(ord, joinValue);
+ final BytesRef joinValue = docTermOrds.lookupOrd(ord);
JoinScore joinScore = joinValueToJoinScores.get(joinValue);
if (joinScore == null) {
joinValueToJoinScores.put(BytesRef.deepCopyOf(joinValue), joinScore = new JoinScore());
@@ -699,12 +698,10 @@ public class TestJoinUtil extends Lucene
private Scorer scorer;
private BinaryDocValues terms;
private Bits docsWithField;
- private final BytesRef spare = new BytesRef();
@Override
public void collect(int doc) throws IOException {
- terms.get(doc, spare);
- BytesRef joinValue = spare;
+ final BytesRef joinValue = terms.get(doc);
if (joinValue.length == 0 && !docsWithField.get(doc)) {
return;
}
@@ -764,7 +761,6 @@ public class TestJoinUtil extends Lucene
toSearcher.search(new MatchAllDocsQuery(), new SimpleCollector() {
private SortedSetDocValues docTermOrds;
- private final BytesRef scratch = new BytesRef();
private int docBase;
@Override
@@ -772,8 +768,8 @@ public class TestJoinUtil extends Lucene
docTermOrds.setDocument(doc);
long ord;
while ((ord = docTermOrds.nextOrd()) != SortedSetDocValues.NO_MORE_ORDS) {
- docTermOrds.lookupOrd(ord, scratch);
- JoinScore joinScore = joinValueToJoinScores.get(scratch);
+ final BytesRef joinValue = docTermOrds.lookupOrd(ord);
+ JoinScore joinScore = joinValueToJoinScores.get(joinValue);
if (joinScore == null) {
continue;
}
@@ -803,12 +799,11 @@ public class TestJoinUtil extends Lucene
private BinaryDocValues terms;
private int docBase;
- private final BytesRef spare = new BytesRef();
@Override
public void collect(int doc) {
- terms.get(doc, spare);
- JoinScore joinScore = joinValueToJoinScores.get(spare);
+ final BytesRef joinValue = terms.get(doc);
+ JoinScore joinScore = joinValueToJoinScores.get(joinValue);
if (joinScore == null) {
return;
}
Modified: lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingAtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingAtomicReader.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingAtomicReader.java (original)
+++ lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingAtomicReader.java Thu Jun 5 15:54:49 2014
@@ -201,8 +201,8 @@ public class SortingAtomicReader extends
}
@Override
- public void get(int docID, BytesRef result) {
- in.get(docMap.newToOld(docID), result);
+ public BytesRef get(int docID) {
+ return in.get(docMap.newToOld(docID));
}
}
@@ -259,8 +259,8 @@ public class SortingAtomicReader extends
}
@Override
- public void lookupOrd(int ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(int ord) {
+ return in.lookupOrd(ord);
}
@Override
@@ -269,8 +269,8 @@ public class SortingAtomicReader extends
}
@Override
- public void get(int docID, BytesRef result) {
- in.get(docMap.newToOld(docID), result);
+ public BytesRef get(int docID) {
+ return in.get(docMap.newToOld(docID));
}
@Override
@@ -300,8 +300,8 @@ public class SortingAtomicReader extends
}
@Override
- public void lookupOrd(long ord, BytesRef result) {
- in.lookupOrd(ord, result);
+ public BytesRef lookupOrd(long ord) {
+ return in.lookupOrd(ord);
}
@Override
Modified: lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java (original)
+++ lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/DocTermOrds.java Thu Jun 5 15:54:49 2014
@@ -32,7 +32,6 @@ import org.apache.lucene.index.Fields;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.TermsEnum.SeekStatus;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
@@ -773,7 +772,7 @@ public class DocTermOrds {
/** Returns a SortedSetDocValues view of this instance */
public SortedSetDocValues iterator(AtomicReader reader) throws IOException {
if (isEmpty()) {
- return DocValues.EMPTY_SORTED_SET;
+ return DocValues.emptySortedSet();
} else {
return new Iterator(reader);
}
@@ -874,16 +873,12 @@ public class DocTermOrds {
}
@Override
- public void lookupOrd(long ord, BytesRef result) {
- BytesRef ref = null;
+ public BytesRef lookupOrd(long ord) {
try {
- ref = DocTermOrds.this.lookupTerm(te, (int) ord);
+ return DocTermOrds.this.lookupTerm(te, (int) ord);
} catch (IOException e) {
throw new RuntimeException(e);
}
- result.bytes = ref.bytes;
- result.offset = ref.offset;
- result.length = ref.length;
}
@Override
Modified: lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java (original)
+++ lucene/dev/trunk/lucene/misc/src/java/org/apache/lucene/uninverting/FieldCacheImpl.java Thu Jun 5 15:54:49 2014
@@ -431,11 +431,11 @@ class FieldCacheImpl implements FieldCac
} else {
final FieldInfo info = reader.getFieldInfos().fieldInfo(field);
if (info == null) {
- return DocValues.EMPTY_NUMERIC;
+ return DocValues.emptyNumeric();
} else if (info.hasDocValues()) {
throw new IllegalStateException("Type mismatch: " + field + " was indexed as " + info.getDocValuesType());
} else if (!info.isIndexed()) {
- return DocValues.EMPTY_NUMERIC;
+ return DocValues.emptyNumeric();
}
return (NumericDocValues) caches.get(Long.TYPE).get(reader, new CacheKey(field, parser), setDocsWithField);
}
@@ -523,7 +523,7 @@ class FieldCacheImpl implements FieldCac
}
}
- public static class SortedDocValuesImpl extends SortedDocValues {
+ public static class SortedDocValuesImpl {
private final PagedBytes.Reader bytes;
private final MonotonicAppendingLongBuffer termOrdToBytesOffset;
private final PackedInts.Reader docToTermOrd;
@@ -535,26 +535,33 @@ class FieldCacheImpl implements FieldCac
this.termOrdToBytesOffset = termOrdToBytesOffset;
this.numOrd = numOrd;
}
+
+ public SortedDocValues iterator() {
+ final BytesRef term = new BytesRef();
+ return new SortedDocValues() {
+
+ @Override
+ public int getValueCount() {
+ return numOrd;
+ }
- @Override
- public int getValueCount() {
- return numOrd;
- }
-
- @Override
- public int getOrd(int docID) {
- // Subtract 1, matching the 1+ord we did when
- // storing, so that missing values, which are 0 in the
- // packed ints, are returned as -1 ord:
- return (int) docToTermOrd.get(docID)-1;
- }
+ @Override
+ public int getOrd(int docID) {
+ // Subtract 1, matching the 1+ord we did when
+ // storing, so that missing values, which are 0 in the
+ // packed ints, are returned as -1 ord:
+ return (int) docToTermOrd.get(docID)-1;
+ }
- @Override
- public void lookupOrd(int ord, BytesRef ret) {
- if (ord < 0) {
- throw new IllegalArgumentException("ord must be >=0 (got ord=" + ord + ")");
- }
- bytes.fill(ret, termOrdToBytesOffset.get(ord));
+ @Override
+ public BytesRef lookupOrd(int ord) {
+ if (ord < 0) {
+ throw new IllegalArgumentException("ord must be >=0 (got ord=" + ord + ")");
+ }
+ bytes.fill(term, termOrdToBytesOffset.get(ord));
+ return term;
+ }
+ };
}
}
@@ -571,15 +578,16 @@ class FieldCacheImpl implements FieldCac
} else {
final FieldInfo info = reader.getFieldInfos().fieldInfo(field);
if (info == null) {
- return DocValues.EMPTY_SORTED;
+ return DocValues.emptySorted();
} else if (info.hasDocValues()) {
// we don't try to build a sorted instance from numeric/binary doc
// values because dedup can be very costly
throw new IllegalStateException("Type mismatch: " + field + " was indexed as " + info.getDocValuesType());
} else if (!info.isIndexed()) {
- return DocValues.EMPTY_SORTED;
+ return DocValues.emptySorted();
}
- return (SortedDocValues) caches.get(SortedDocValues.class).get(reader, new CacheKey(field, acceptableOverheadRatio), false);
+ SortedDocValuesImpl impl = (SortedDocValuesImpl) caches.get(SortedDocValues.class).get(reader, new CacheKey(field, acceptableOverheadRatio), false);
+ return impl.iterator();
}
}
@@ -674,22 +682,23 @@ class FieldCacheImpl implements FieldCac
private static class BinaryDocValuesImpl extends BinaryDocValues {
private final PagedBytes.Reader bytes;
private final PackedInts.Reader docToOffset;
+ private final BytesRef term;
public BinaryDocValuesImpl(PagedBytes.Reader bytes, PackedInts.Reader docToOffset) {
this.bytes = bytes;
this.docToOffset = docToOffset;
+ term = new BytesRef();
}
@Override
- public void get(int docID, BytesRef ret) {
+ public BytesRef get(int docID) {
final int pointer = (int) docToOffset.get(docID);
if (pointer == 0) {
- ret.bytes = BytesRef.EMPTY_BYTES;
- ret.offset = 0;
- ret.length = 0;
+ term.length = 0;
} else {
- bytes.fill(ret, pointer);
+ bytes.fill(term, pointer);
}
+ return term;
}
}
@@ -713,11 +722,11 @@ class FieldCacheImpl implements FieldCac
final FieldInfo info = reader.getFieldInfos().fieldInfo(field);
if (info == null) {
- return DocValues.EMPTY_BINARY;
+ return DocValues.emptyBinary();
} else if (info.hasDocValues()) {
throw new IllegalStateException("Type mismatch: " + field + " was indexed as " + info.getDocValuesType());
} else if (!info.isIndexed()) {
- return DocValues.EMPTY_BINARY;
+ return DocValues.emptyBinary();
}
return (BinaryDocValues) caches.get(BinaryDocValues.class).get(reader, new CacheKey(field, acceptableOverheadRatio), setDocsWithField);
@@ -835,18 +844,18 @@ class FieldCacheImpl implements FieldCac
final FieldInfo info = reader.getFieldInfos().fieldInfo(field);
if (info == null) {
- return DocValues.EMPTY_SORTED_SET;
+ return DocValues.emptySortedSet();
} else if (info.hasDocValues()) {
throw new IllegalStateException("Type mismatch: " + field + " was indexed as " + info.getDocValuesType());
} else if (!info.isIndexed()) {
- return DocValues.EMPTY_SORTED_SET;
+ return DocValues.emptySortedSet();
}
// ok we need to uninvert. check if we can optimize a bit.
Terms terms = reader.terms(field);
if (terms == null) {
- return DocValues.EMPTY_SORTED_SET;
+ return DocValues.emptySortedSet();
} else {
// if #postings = #docswithfield we know that the field is "single valued enough".
// its possible the same term might appear twice in the same document, but SORTED_SET discards frequency.
Modified: lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/sorter/SorterTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/sorter/SorterTestBase.java?rev=1600688&r1=1600687&r2=1600688&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/sorter/SorterTestBase.java (original)
+++ lucene/dev/trunk/lucene/misc/src/test/org/apache/lucene/index/sorter/SorterTestBase.java Thu Jun 5 15:54:49 2014
@@ -239,9 +239,8 @@ public abstract class SorterTestBase ext
@Test
public void testBinaryDocValuesField() throws Exception {
BinaryDocValues dv = reader.getBinaryDocValues(BINARY_DV_FIELD);
- BytesRef bytes = new BytesRef();
for (int i = 0; i < reader.maxDoc(); i++) {
- dv.get(i, bytes);
+ final BytesRef bytes = dv.get(i);
assertEquals("incorrect binary DocValues for doc " + i, sortedValues[i].toString(), bytes.utf8ToString());
}
}
@@ -367,9 +366,8 @@ public abstract class SorterTestBase ext
public void testSortedDocValuesField() throws Exception {
SortedDocValues dv = reader.getSortedDocValues(SORTED_DV_FIELD);
int maxDoc = reader.maxDoc();
- BytesRef bytes = new BytesRef();
for (int i = 0; i < maxDoc; i++) {
- dv.get(i, bytes);
+ final BytesRef bytes = dv.get(i);
assertEquals("incorrect sorted DocValues for doc " + i, sortedValues[i].toString(), bytes.utf8ToString());
}
}
@@ -379,13 +377,12 @@ public abstract class SorterTestBase ext
assumeTrue("default codec does not support SORTED_SET", defaultCodecSupportsSortedSet());
SortedSetDocValues dv = reader.getSortedSetDocValues(SORTED_SET_DV_FIELD);
int maxDoc = reader.maxDoc();
- BytesRef bytes = new BytesRef();
for (int i = 0; i < maxDoc; i++) {
dv.setDocument(i);
- dv.lookupOrd(dv.nextOrd(), bytes);
+ BytesRef bytes = dv.lookupOrd(dv.nextOrd());
int value = sortedValues[i].intValue();
assertEquals("incorrect sorted-set DocValues for doc " + i, Integer.valueOf(value).toString(), bytes.utf8ToString());
- dv.lookupOrd(dv.nextOrd(), bytes);
+ bytes = dv.lookupOrd(dv.nextOrd());
assertEquals("incorrect sorted-set DocValues for doc " + i, Integer.valueOf(value + 1).toString(), bytes.utf8ToString());
assertEquals(SortedSetDocValues.NO_MORE_ORDS, dv.nextOrd());
}