You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2016/12/07 13:47:43 UTC
[5/5] lucene-solr:branch_6x: LUCENE-7563: fix 6.x backport
compilation errors
LUCENE-7563: fix 6.x backport compilation errors
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/0c8e8e39
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/0c8e8e39
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/0c8e8e39
Branch: refs/heads/branch_6x
Commit: 0c8e8e396a4ccc41e6af78ac7d0342716c36902a
Parents: fd1f608
Author: Mike McCandless <mi...@apache.org>
Authored: Wed Dec 7 07:37:26 2016 -0500
Committer: Mike McCandless <mi...@apache.org>
Committed: Wed Dec 7 07:37:26 2016 -0500
----------------------------------------------------------------------
.../codecs/simpletext/SimpleTextBKDReader.java | 13 ++--
.../codecs/simpletext/SimpleTextBKDWriter.java | 18 ++---
.../simpletext/SimpleTextPointsReader.java | 16 ++---
.../simpletext/SimpleTextPointsWriter.java | 4 +-
.../lucene/codecs/lucene60/package-info.java | 2 +-
.../org/apache/lucene/index/CheckIndex.java | 34 +++++-----
.../org/apache/lucene/util/bkd/BKDReader.java | 5 +-
.../org/apache/lucene/util/bkd/BKDWriter.java | 2 +-
.../util/bkd/MutablePointsReaderUtils.java | 8 +--
.../apache/lucene/util/bkd/Test2BBKDPoints.java | 70 ++++++++++++++++++--
10 files changed, 113 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
index 488547b..bea7b62 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDReader.java
@@ -21,7 +21,8 @@ import java.nio.charset.StandardCharsets;
import org.apache.lucene.codecs.simpletext.SimpleTextUtil;
import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.PointValues;
+import org.apache.lucene.index.PointValues.IntersectVisitor;
+import org.apache.lucene.index.PointValues.Relation;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.BytesRef;
@@ -36,7 +37,7 @@ import static org.apache.lucene.codecs.simpletext.SimpleTextPointsWriter.BLOCK_V
/** Forked from {@link BKDReader} and simplified/specialized for SimpleText's usage */
-final class SimpleTextBKDReader extends PointValues implements Accountable {
+final class SimpleTextBKDReader implements Accountable {
// Packed array of byte[] holding all split values in the full binary tree:
final private byte[] splitPackedValues;
final long[] leafBlockFPs;
@@ -306,32 +307,26 @@ final class SimpleTextBKDReader extends PointValues implements Accountable {
RamUsageEstimator.sizeOf(leafBlockFPs);
}
- @Override
public byte[] getMinPackedValue() {
return minPackedValue.clone();
}
- @Override
public byte[] getMaxPackedValue() {
return maxPackedValue.clone();
}
- @Override
public int getNumDimensions() {
return numDims;
}
- @Override
public int getBytesPerDimension() {
return bytesPerDim;
}
- @Override
- public long size() {
+ public long getPointCount() {
return pointCount;
}
- @Override
public int getDocCount() {
return docCount;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDWriter.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDWriter.java
index d7674ed..0dbc176 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextBKDWriter.java
@@ -25,7 +25,7 @@ import java.util.List;
import java.util.function.IntFunction;
import org.apache.lucene.codecs.CodecUtil;
-import org.apache.lucene.codecs.MutablePointValues;
+import org.apache.lucene.codecs.MutablePointsReader;
import org.apache.lucene.index.MergeState;
import org.apache.lucene.index.PointValues.IntersectVisitor;
import org.apache.lucene.index.PointValues.Relation;
@@ -427,12 +427,12 @@ final class SimpleTextBKDWriter implements Closeable {
}
}
- /** Write a field from a {@link MutablePointValues}. This way of writing
+ /** Write a field from a {@link MutablePointsReader}. This way of writing
* points is faster than regular writes with {@link BKDWriter#add} since
* there is opportunity for reordering points before writing them to
* disk. This method does not use transient disk in order to reorder points.
*/
- public long writeField(IndexOutput out, String fieldName, MutablePointValues reader) throws IOException {
+ public long writeField(IndexOutput out, String fieldName, MutablePointsReader reader) throws IOException {
if (numDims == 1) {
return writeField1Dim(out, fieldName, reader);
} else {
@@ -443,7 +443,7 @@ final class SimpleTextBKDWriter implements Closeable {
/* In the 2+D case, we recursively pick the split dimension, compute the
* median value and partition other values around it. */
- private long writeFieldNDims(IndexOutput out, String fieldName, MutablePointValues values) throws IOException {
+ private long writeFieldNDims(IndexOutput out, String fieldName, MutablePointsReader values) throws IOException {
if (pointCount != 0) {
throw new IllegalStateException("cannot mix add and writeField");
}
@@ -456,7 +456,7 @@ final class SimpleTextBKDWriter implements Closeable {
// Mark that we already finished:
heapPointWriter = null;
- long countPerLeaf = pointCount = values.size();
+ long countPerLeaf = pointCount = values.size(fieldName);
long innerNodeCount = 1;
while (countPerLeaf > maxPointsInLeafNode) {
@@ -501,12 +501,12 @@ final class SimpleTextBKDWriter implements Closeable {
/* In the 1D case, we can simply sort points in ascending order and use the
* same writing logic as we use at merge time. */
- private long writeField1Dim(IndexOutput out, String fieldName, MutablePointValues reader) throws IOException {
- MutablePointsReaderUtils.sort(maxDoc, packedBytesLength, reader, 0, Math.toIntExact(reader.size()));
+ private long writeField1Dim(IndexOutput out, String fieldName, MutablePointsReader reader) throws IOException {
+ MutablePointsReaderUtils.sort(maxDoc, packedBytesLength, reader, 0, Math.toIntExact(reader.size(fieldName)));
final OneDimensionBKDWriter oneDimWriter = new OneDimensionBKDWriter(out);
- reader.intersect(new IntersectVisitor() {
+ reader.intersect(fieldName, new IntersectVisitor() {
@Override
public void visit(int docID, byte[] packedValue) throws IOException {
@@ -1264,7 +1264,7 @@ final class SimpleTextBKDWriter implements Closeable {
/* Recursively reorders the provided reader and writes the bkd-tree on the fly. */
private void build(int nodeID, int leafNodeOffset,
- MutablePointValues reader, int from, int to,
+ MutablePointsReader reader, int from, int to,
IndexOutput out,
byte[] minPackedValue, byte[] maxPackedValue,
byte[] splitPackedValues,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsReader.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsReader.java
index 8ca1635..e6711e7 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsReader.java
@@ -184,7 +184,7 @@ class SimpleTextPointsReader extends PointsReader {
return new String(scratch.bytes(), prefix.length, scratch.length() - prefix.length, StandardCharsets.UTF_8);
}
- private BKDReader getBKDReader(String fieldName) {
+ private SimpleTextBKDReader getBKDReader(String fieldName) {
FieldInfo fieldInfo = readState.fieldInfos.fieldInfo(fieldName);
if (fieldInfo == null) {
throw new IllegalArgumentException("field=\"" + fieldName + "\" is unrecognized");
@@ -198,7 +198,7 @@ class SimpleTextPointsReader extends PointsReader {
/** Finds all documents and points matching the provided visitor */
@Override
public void intersect(String fieldName, IntersectVisitor visitor) throws IOException {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -246,7 +246,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public byte[] getMinPackedValue(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -257,7 +257,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public byte[] getMaxPackedValue(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -268,7 +268,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public int getNumDimensions(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -279,7 +279,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public int getBytesPerDimension(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -290,7 +290,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public long size(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
@@ -301,7 +301,7 @@ class SimpleTextPointsReader extends PointsReader {
@Override
public int getDocCount(String fieldName) {
- BKDReader bkdReader = getBKDReader(fieldName);
+ SimpleTextBKDReader bkdReader = getBKDReader(fieldName);
if (bkdReader == null) {
// Schema ghost corner case! This field did index points in the past, but
// now all docs having this field were deleted in this segment:
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsWriter.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsWriter.java
index e4b2c2c..0c62929 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextPointsWriter.java
@@ -70,7 +70,7 @@ class SimpleTextPointsWriter extends PointsWriter {
boolean singleValuePerDoc = values.size(fieldInfo.name) == values.getDocCount(fieldInfo.name);
- // We use the normal BKDWriter, but subclass to customize how it writes the index and blocks to disk:
+ // We use our own fork of the BKDWriter to customize how it writes the index and blocks to disk:
try (SimpleTextBKDWriter writer = new SimpleTextBKDWriter(writeState.segmentInfo.maxDoc(),
writeState.directory,
writeState.segmentInfo.name,
@@ -78,7 +78,7 @@ class SimpleTextPointsWriter extends PointsWriter {
fieldInfo.getPointNumBytes(),
SimpleTextBKDWriter.DEFAULT_MAX_POINTS_IN_LEAF_NODE,
SimpleTextBKDWriter.DEFAULT_MAX_MB_SORT_IN_HEAP,
- values.size(),
+ values.size(fieldInfo.name),
singleValuePerDoc)) {
values.intersect(fieldInfo.name, new IntersectVisitor() {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/java/org/apache/lucene/codecs/lucene60/package-info.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene60/package-info.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene60/package-info.java
index a914001..f6f0783 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene60/package-info.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene60/package-info.java
@@ -16,7 +16,7 @@
*/
/**
- * Components from the Lucene 6.0 index format. See {@link org.apache.lucene.codecs.lucene70}
+ * Components from the Lucene 6.0 index format. See {@link org.apache.lucene.codecs.lucene62}
* for an overview of the current index format.
*/
package org.apache.lucene.codecs.lucene60;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
index bc22d86..21a28e5 100644
--- a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
+++ b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
@@ -1799,18 +1799,14 @@ public final class CheckIndex implements Closeable {
}
for (FieldInfo fieldInfo : fieldInfos) {
if (fieldInfo.getPointDimensionCount() > 0) {
- PointValues values = pointsReader.getValues(fieldInfo.name);
- if (values == null) {
- continue;
- }
status.totalValueFields++;
- long size = values.size();
- int docCount = values.getDocCount();
+ long size = values.size(fieldInfo.name);
+ int docCount = values.getDocCount(fieldInfo.name);
VerifyPointsVisitor visitor = new VerifyPointsVisitor(fieldInfo.name, reader.maxDoc(), values);
- values.intersect(visitor);
+ values.intersect(fieldInfo.name, visitor);
if (visitor.getPointCountSeen() != size) {
throw new RuntimeException("point values for field \"" + fieldInfo.name + "\" claims to have size=" + size + " points, but in fact has " + visitor.getPointCountSeen());
@@ -1863,34 +1859,34 @@ public final class CheckIndex implements Closeable {
public VerifyPointsVisitor(String fieldName, int maxDoc, PointValues values) throws IOException {
this.maxDoc = maxDoc;
this.fieldName = fieldName;
- numDims = values.getNumDimensions();
- bytesPerDim = values.getBytesPerDimension();
+ numDims = values.getNumDimensions(fieldName);
+ bytesPerDim = values.getBytesPerDimension(fieldName);
packedBytesCount = numDims * bytesPerDim;
- globalMinPackedValue = values.getMinPackedValue();
- globalMaxPackedValue = values.getMaxPackedValue();
+ globalMinPackedValue = values.getMinPackedValue(fieldName);
+ globalMaxPackedValue = values.getMaxPackedValue(fieldName);
docsSeen = new FixedBitSet(maxDoc);
lastMinPackedValue = new byte[packedBytesCount];
lastMaxPackedValue = new byte[packedBytesCount];
lastPackedValue = new byte[packedBytesCount];
- if (values.getDocCount() > values.size()) {
- throw new RuntimeException("point values for field \"" + fieldName + "\" claims to have size=" + values.size() + " points and inconsistent docCount=" + values.getDocCount());
+ if (values.getDocCount(fieldName) > values.size(fieldName)) {
+ throw new RuntimeException("point values for field \"" + fieldName + "\" claims to have size=" + values.size(fieldName) + " points and inconsistent docCount=" + values.getDocCount(fieldName));
}
- if (values.getDocCount() > maxDoc) {
- throw new RuntimeException("point values for field \"" + fieldName + "\" claims to have docCount=" + values.getDocCount() + " but that's greater than maxDoc=" + maxDoc);
+ if (values.getDocCount(fieldName) > maxDoc) {
+ throw new RuntimeException("point values for field \"" + fieldName + "\" claims to have docCount=" + values.getDocCount(fieldName) + " but that's greater than maxDoc=" + maxDoc);
}
if (globalMinPackedValue == null) {
- if (values.size() != 0) {
- throw new RuntimeException("getMinPackedValue is null points for field \"" + fieldName + "\" yet size=" + values.size());
+ if (values.size(fieldName) != 0) {
+ throw new RuntimeException("getMinPackedValue is null points for field \"" + fieldName + "\" yet size=" + values.size(fieldName));
}
} else if (globalMinPackedValue.length != packedBytesCount) {
throw new RuntimeException("getMinPackedValue for field \"" + fieldName + "\" return length=" + globalMinPackedValue.length + " array, but should be " + packedBytesCount);
}
if (globalMaxPackedValue == null) {
- if (values.size() != 0) {
- throw new RuntimeException("getMaxPackedValue is null points for field \"" + fieldName + "\" yet size=" + values.size());
+ if (values.size(fieldName) != 0) {
+ throw new RuntimeException("getMaxPackedValue is null points for field \"" + fieldName + "\" yet size=" + values.size(fieldName));
}
} else if (globalMaxPackedValue.length != packedBytesCount) {
throw new RuntimeException("getMaxPackedValue for field \"" + fieldName + "\" return length=" + globalMaxPackedValue.length + " array, but should be " + packedBytesCount);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/java/org/apache/lucene/util/bkd/BKDReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDReader.java b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDReader.java
index ef9bccc..4f4228d 100644
--- a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDReader.java
+++ b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDReader.java
@@ -20,7 +20,8 @@ import java.io.IOException;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.index.CorruptIndexException;
-import org.apache.lucene.index.PointValues;
+import org.apache.lucene.index.PointValues.IntersectVisitor;
+import org.apache.lucene.index.PointValues.Relation;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.Accountable;
@@ -33,7 +34,7 @@ import org.apache.lucene.util.StringHelper;
*
* @lucene.experimental */
-public final class BKDReader extends PointValues implements Accountable {
+public final class BKDReader implements Accountable {
// Packed array of byte[] holding all split values in the full binary tree:
final int leafNodeOffset;
final int numDims;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java
index 2567eef..b9fd37cb 100644
--- a/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/util/bkd/BKDWriter.java
@@ -1451,7 +1451,7 @@ public class BKDWriter implements Closeable {
/* Recursively reorders the provided reader and writes the bkd-tree on the fly. */
private void build(int nodeID, int leafNodeOffset,
- MutablePointValues reader, int from, int to,
+ MutablePointsReader reader, int from, int to,
IndexOutput out,
byte[] minPackedValue, byte[] maxPackedValue,
byte[] splitPackedValues,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/java/org/apache/lucene/util/bkd/MutablePointsReaderUtils.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/util/bkd/MutablePointsReaderUtils.java b/lucene/core/src/java/org/apache/lucene/util/bkd/MutablePointsReaderUtils.java
index 9e84c8d..c7be5ba 100644
--- a/lucene/core/src/java/org/apache/lucene/util/bkd/MutablePointsReaderUtils.java
+++ b/lucene/core/src/java/org/apache/lucene/util/bkd/MutablePointsReaderUtils.java
@@ -33,9 +33,9 @@ public final class MutablePointsReaderUtils {
MutablePointsReaderUtils() {}
- /** Sort the given {@link MutablePointValues} based on its packed value then doc ID. */
+ /** Sort the given {@link MutablePointsReader} based on its packed value then doc ID. */
public static void sort(int maxDoc, int packedBytesLength,
- MutablePointValues reader, int from, int to) {
+ MutablePointsReader reader, int from, int to) {
final int bitsPerDocId = PackedInts.bitsRequired(maxDoc - 1);
new MSBRadixSorter(packedBytesLength + (bitsPerDocId + 7) / 8) {
@@ -92,7 +92,7 @@ public final class MutablePointsReaderUtils {
/** Sort points on the given dimension. */
public static void sortByDim(int sortedDim, int bytesPerDim, int[] commonPrefixLengths,
- MutablePointValues reader, int from, int to,
+ MutablePointsReader reader, int from, int to,
BytesRef scratch1, BytesRef scratch2) {
// No need for a fancy radix sort here, this is called on the leaves only so
@@ -131,7 +131,7 @@ public final class MutablePointsReaderUtils {
* than or equal to it and all values on the right must be greater than or
* equal to it. */
public static void partition(int maxDoc, int splitDim, int bytesPerDim, int commonPrefixLen,
- MutablePointValues reader, int from, int to, int mid,
+ MutablePointsReader reader, int from, int to, int mid,
BytesRef scratch1, BytesRef scratch2) {
final int offset = splitDim * bytesPerDim + commonPrefixLen;
final int cmpBytes = bytesPerDim - commonPrefixLen;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0c8e8e39/lucene/core/src/test/org/apache/lucene/util/bkd/Test2BBKDPoints.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/util/bkd/Test2BBKDPoints.java b/lucene/core/src/test/org/apache/lucene/util/bkd/Test2BBKDPoints.java
index e30168c..a89a184 100644
--- a/lucene/core/src/test/org/apache/lucene/util/bkd/Test2BBKDPoints.java
+++ b/lucene/core/src/test/org/apache/lucene/util/bkd/Test2BBKDPoints.java
@@ -16,7 +16,10 @@
*/
package org.apache.lucene.util.bkd;
+import java.io.IOException;
+
import org.apache.lucene.index.CheckIndex;
+import org.apache.lucene.index.PointValues;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IOContext;
@@ -65,9 +68,9 @@ public class Test2BBKDPoints extends LuceneTestCase {
IndexInput in = dir.openInput("1d.bkd", IOContext.DEFAULT);
in.seek(indexFP);
BKDReader r = new BKDReader(in);
- CheckIndex.VerifyPointsVisitor visitor = new CheckIndex.VerifyPointsVisitor("1d", numDocs, r);
+ CheckIndex.VerifyPointsVisitor visitor = new CheckIndex.VerifyPointsVisitor("1d", numDocs, new BKDReaderToPointValues("1d", r));
r.intersect(visitor);
- assertEquals(r.size(), visitor.getPointCountSeen());
+ assertEquals(r.getPointCount(), visitor.getPointCountSeen());
assertEquals(r.getDocCount(), visitor.getDocCountSeen());
in.close();
dir.close();
@@ -105,11 +108,70 @@ public class Test2BBKDPoints extends LuceneTestCase {
IndexInput in = dir.openInput("2d.bkd", IOContext.DEFAULT);
in.seek(indexFP);
BKDReader r = new BKDReader(in);
- CheckIndex.VerifyPointsVisitor visitor = new CheckIndex.VerifyPointsVisitor("2d", numDocs, r);
+ CheckIndex.VerifyPointsVisitor visitor = new CheckIndex.VerifyPointsVisitor("2d", numDocs, new BKDReaderToPointValues("2d", r));
r.intersect(visitor);
- assertEquals(r.size(), visitor.getPointCountSeen());
+ assertEquals(r.getPointCount(), visitor.getPointCountSeen());
assertEquals(r.getDocCount(), visitor.getDocCountSeen());
in.close();
dir.close();
}
+
+ private class BKDReaderToPointValues extends PointValues {
+
+ private final BKDReader bkdReader;
+ private final String fieldName;
+
+ public BKDReaderToPointValues(String fieldName, BKDReader bkdReader) {
+ this.fieldName = fieldName;
+ this.bkdReader = bkdReader;
+ }
+
+ @Override
+ public void intersect(String fieldNameIn, IntersectVisitor visitor) throws IOException {
+ verifyFieldName(fieldNameIn);
+ bkdReader.intersect(visitor);
+ }
+
+ @Override
+ public byte[] getMinPackedValue(String fieldNameIn) throws IOException {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getMinPackedValue();
+ }
+
+ @Override
+ public byte[] getMaxPackedValue(String fieldNameIn) throws IOException {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getMaxPackedValue();
+ }
+
+ @Override
+ public int getNumDimensions(String fieldNameIn) throws IOException {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getNumDimensions();
+ }
+
+ @Override
+ public int getBytesPerDimension(String fieldNameIn) throws IOException {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getBytesPerDimension();
+ }
+
+ @Override
+ public long size(String fieldNameIn) {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getPointCount();
+ }
+
+ @Override
+ public int getDocCount(String fieldNameIn) {
+ verifyFieldName(fieldNameIn);
+ return bkdReader.getDocCount();
+ }
+
+ private void verifyFieldName(String fieldNameIn) {
+ if (fieldName.equals(fieldNameIn) == false) {
+ throw new IllegalArgumentException("expected fieldName=\"" + fieldName + "\" but got \"" + fieldNameIn + "\"");
+ }
+ }
+ }
}