You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2016/10/07 09:04:17 UTC
lucene-solr:master: LUCENE-7479: SimpleText should directly implement
the new doc values APIs.
Repository: lucene-solr
Updated Branches:
refs/heads/master 87bad0956 -> fb088817e
LUCENE-7479: SimpleText should directly implement the new doc values APIs.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/fb088817
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/fb088817
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/fb088817
Branch: refs/heads/master
Commit: fb088817eb12df4c76c4369f98629003f1ab307c
Parents: 87bad09
Author: Adrien Grand <jp...@gmail.com>
Authored: Fri Oct 7 10:59:11 2016 +0200
Committer: Adrien Grand <jp...@gmail.com>
Committed: Fri Oct 7 10:59:11 2016 +0200
----------------------------------------------------------------------
.../lucene54/Lucene54DocValuesProducer.java | 2 +-
.../codecs/lucene53/Lucene53NormsConsumer.java | 2 +-
.../index/TestBackwardsCompatibility.java | 2 +-
.../simpletext/SimpleTextDocValuesReader.java | 394 +++++++++++++------
.../simpletext/SimpleTextDocValuesWriter.java | 184 +++++----
.../simpletext/SimpleTextNormsFormat.java | 12 +-
.../apache/lucene/codecs/DocValuesConsumer.java | 8 +-
.../lucene/codecs/LegacyDocValuesIterables.java | 27 +-
.../lucene70/Lucene70DocValuesProducer.java | 2 +-
.../apache/lucene/index/BinaryDocValues.java | 8 +-
.../lucene/index/FilterBinaryDocValues.java | 2 +-
.../org/apache/lucene/index/MultiDocValues.java | 6 +-
.../index/SingletonSortedSetDocValues.java | 4 +-
.../apache/lucene/index/SortedDocValues.java | 8 +-
.../apache/lucene/index/SortedSetDocValues.java | 4 +-
.../apache/lucene/index/SortingLeafReader.java | 4 +-
.../apache/lucene/search/FieldComparator.java | 2 +-
.../lucene/search/LeafFieldComparator.java | 2 +-
.../apache/lucene/search/SortedSetSelector.java | 16 +-
.../apache/lucene/search/TopFieldCollector.java | 2 +-
.../index/TestBinaryDocValuesUpdates.java | 2 +-
.../SortedSetDocValuesFacetCounts.java | 4 +-
.../AbstractFirstPassGroupingCollector.java | 4 +-
.../search/grouping/BlockGroupingCollector.java | 2 +-
.../grouping/term/TermGroupFacetCollector.java | 2 +-
.../grouping/DistinctValuesCollectorTest.java | 2 +-
.../lucene/search/grouping/TestGrouping.java | 2 +-
.../lucene/search/join/BlockJoinSelector.java | 2 +-
.../search/join/GenericTermsCollector.java | 2 +-
.../search/TestDiversifiedTopDocsCollector.java | 2 +-
.../lucene/index/AssertingLeafReader.java | 12 +-
.../org/apache/solr/request/IntervalFacets.java | 4 +-
.../facet/FacetFieldProcessorByHashDV.java | 8 +-
.../solr/search/facet/UniqueMultiDvSlotAcc.java | 2 +-
.../search/facet/UniqueSinglevaluedSlotAcc.java | 2 +-
.../apache/solr/search/grouping/Command.java | 2 +-
.../command/SearchGroupsFieldCommand.java | 2 +-
.../search/join/BlockJoinFacetAccsHolder.java | 2 +-
.../join/BlockJoinFieldFacetAccumulator.java | 2 +-
39 files changed, 477 insertions(+), 274 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesProducer.java
----------------------------------------------------------------------
diff --git a/lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesProducer.java b/lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesProducer.java
index 9356aed..25f4b5e 100644
--- a/lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesProducer.java
+++ b/lucene/backward-codecs/src/java/org/apache/lucene/codecs/lucene54/Lucene54DocValuesProducer.java
@@ -919,7 +919,7 @@ final class Lucene54DocValuesProducer extends DocValuesProducer implements Close
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
if (binary instanceof CompressedBinaryDocValues) {
return (int) ((CompressedBinaryDocValues)binary).lookupTerm(key);
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene53/Lucene53NormsConsumer.java
----------------------------------------------------------------------
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene53/Lucene53NormsConsumer.java b/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene53/Lucene53NormsConsumer.java
index ddb968c..833500c 100644
--- a/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene53/Lucene53NormsConsumer.java
+++ b/lucene/backward-codecs/src/test/org/apache/lucene/codecs/lucene53/Lucene53NormsConsumer.java
@@ -58,7 +58,7 @@ class Lucene53NormsConsumer extends NormsConsumer {
@Override
public void addNormsField(FieldInfo field, NormsProducer normsProducer) throws IOException {
- addNormsField(field, LegacyDocValuesIterables.normsIterable(field, normsProducer, maxDoc, true));
+ addNormsField(field, LegacyDocValuesIterables.normsIterable(field, normsProducer, maxDoc));
}
private void addNormsField(FieldInfo field, Iterable<Number> values) throws IOException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
----------------------------------------------------------------------
diff --git a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
index 6c56cec..2371b01 100644
--- a/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
+++ b/lucene/backward-codecs/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
@@ -1481,7 +1481,7 @@ public class TestBackwardsCompatibility extends LuceneTestCase {
}
}
- static long getValue(BinaryDocValues bdv) {
+ static long getValue(BinaryDocValues bdv) throws IOException {
BytesRef term = bdv.binaryValue();
int idx = term.offset;
byte b = term.bytes[idx++];
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
index b01924a..adf5e42 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesReader.java
@@ -27,14 +27,15 @@ import java.text.ParseException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import java.util.function.IntFunction;
import org.apache.lucene.codecs.DocValuesProducer;
import org.apache.lucene.index.*;
import org.apache.lucene.index.NumericDocValues;
+import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.BufferedChecksumIndexInput;
import org.apache.lucene.store.ChecksumIndexInput;
import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.util.RamUsageEstimator;
@@ -139,15 +140,42 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
@Override
public NumericDocValues getNumeric(FieldInfo fieldInfo) throws IOException {
- LegacyNumericDocValues values = getNumericNonIterator(fieldInfo);
+ IntFunction<Long> values = getNumericNonIterator(fieldInfo);
if (values == null) {
return null;
} else {
- return new LegacyNumericDocValuesWrapper(getNumericDocsWithField(fieldInfo), values);
+ DocIdSetIterator docsWithField = getNumericDocsWithField(fieldInfo);
+ return new NumericDocValues() {
+
+ @Override
+ public int nextDoc() throws IOException {
+ return docsWithField.nextDoc();
+ }
+
+ @Override
+ public int docID() {
+ return docsWithField.docID();
+ }
+
+ @Override
+ public long cost() {
+ return docsWithField.cost();
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ return docsWithField.advance(target);
+ }
+
+ @Override
+ public long longValue() throws IOException {
+ return values.apply(docsWithField.docID());
+ }
+ };
}
}
- LegacyNumericDocValues getNumericNonIterator(FieldInfo fieldInfo) throws IOException {
+ IntFunction<Long> getNumericNonIterator(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
assert field != null;
@@ -161,9 +189,9 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
decoder.setParseBigDecimal(true);
- return new LegacyNumericDocValues() {
+ return new IntFunction<Long>() {
@Override
- public long get(int docID) {
+ public Long apply(int docID) {
try {
//System.out.println(Thread.currentThread().getName() + ": get docID=" + docID + " in=" + in);
if (docID < 0 || docID >= maxDoc) {
@@ -187,31 +215,46 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
};
}
- public Bits getNumericDocsWithField(FieldInfo fieldInfo) throws IOException {
+ private DocIdSetIterator getNumericDocsWithField(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
final IndexInput in = data.clone();
final BytesRefBuilder scratch = new BytesRefBuilder();
- return new Bits() {
+ return new DocIdSetIterator() {
+
+ int doc = -1;
+
@Override
- public boolean get(int index) {
- try {
- in.seek(field.dataStartFilePointer + (1+field.pattern.length()+2)*index);
- SimpleTextUtil.readLine(in, scratch); // data
- SimpleTextUtil.readLine(in, scratch); // 'T' or 'F'
- return scratch.byteAt(0) == (byte) 'T';
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ public int nextDoc() throws IOException {
+ return advance(docID() + 1);
}
-
+
+ @Override
+ public int docID() {
+ return doc;
+ }
+
@Override
- public int length() {
+ public long cost() {
return maxDoc;
}
+
+ @Override
+ public int advance(int target) throws IOException {
+ for (int i = target; i < maxDoc; ++i) {
+ in.seek(field.dataStartFilePointer + (1+field.pattern.length()+2)*i);
+ SimpleTextUtil.readLine(in, scratch); // data
+ SimpleTextUtil.readLine(in, scratch); // 'T' or 'F'
+ if (scratch.byteAt(0) == (byte) 'T') {
+ return doc = i;
+ }
+ }
+ return doc = NO_MORE_DOCS;
+ }
};
}
-
- private LegacyBinaryDocValues getLegacyBinary(FieldInfo fieldInfo) throws IOException {
+
+ @Override
+ public synchronized BinaryDocValues getBinary(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
// SegmentCoreReaders already verifies this field is
@@ -222,11 +265,13 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
- return new LegacyBinaryDocValues() {
+ DocIdSetIterator docsWithField = getBinaryDocsWithField(fieldInfo);
+
+ IntFunction<BytesRef> values = new IntFunction<BytesRef>() {
final BytesRefBuilder term = new BytesRefBuilder();
@Override
- public BytesRef get(int docID) {
+ public BytesRef apply(int docID) {
try {
if (docID < 0 || docID >= maxDoc) {
throw new IndexOutOfBoundsException("docID must be 0 .. " + (maxDoc-1) + "; got " + docID);
@@ -249,24 +294,64 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
}
}
};
- }
-
- @Override
- public synchronized BinaryDocValues getBinary(FieldInfo field) throws IOException {
- return new LegacyBinaryDocValuesWrapper(getBinaryDocsWithField(field), getLegacyBinary(field));
+ return new BinaryDocValues() {
+
+ @Override
+ public int nextDoc() throws IOException {
+ return docsWithField.nextDoc();
+ }
+
+ @Override
+ public int docID() {
+ return docsWithField.docID();
+ }
+
+ @Override
+ public long cost() {
+ return docsWithField.cost();
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ return docsWithField.advance(target);
+ }
+
+ @Override
+ public BytesRef binaryValue() throws IOException {
+ return values.apply(docsWithField.docID());
+ }
+ };
}
- private Bits getBinaryDocsWithField(FieldInfo fieldInfo) throws IOException {
+ private DocIdSetIterator getBinaryDocsWithField(FieldInfo fieldInfo) throws IOException {
final OneField field = fields.get(fieldInfo.name);
final IndexInput in = data.clone();
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
- return new Bits() {
+ return new DocIdSetIterator() {
+
+ int doc = -1;
+
@Override
- public boolean get(int index) {
- try {
- in.seek(field.dataStartFilePointer + (9+field.pattern.length() + field.maxLength+2)*index);
+ public int nextDoc() throws IOException {
+ return advance(docID() + 1);
+ }
+
+ @Override
+ public int docID() {
+ return doc;
+ }
+
+ @Override
+ public long cost() {
+ return maxDoc;
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ for (int i = target; i < maxDoc; ++i) {
+ in.seek(field.dataStartFilePointer + (9+field.pattern.length() + field.maxLength+2)*i);
SimpleTextUtil.readLine(in, scratch);
assert StringHelper.startsWith(scratch.get(), LENGTH);
int len;
@@ -280,15 +365,11 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
in.readBytes(bytes, 0, len);
SimpleTextUtil.readLine(in, scratch); // newline
SimpleTextUtil.readLine(in, scratch); // 'T' or 'F'
- return scratch.byteAt(0) == (byte) 'T';
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ if (scratch.byteAt(0) == (byte) 'T') {
+ return doc = i;
+ }
}
- }
-
- @Override
- public int length() {
- return maxDoc;
+ return doc = NO_MORE_DOCS;
}
};
}
@@ -306,67 +387,115 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
final DecimalFormat ordDecoder = new DecimalFormat(field.ordPattern, new DecimalFormatSymbols(Locale.ROOT));
- return new LegacySortedDocValuesWrapper(new LegacySortedDocValues() {
- final BytesRefBuilder term = new BytesRefBuilder();
+ return new SortedDocValues() {
+
+ int doc = -1;
@Override
- public int getOrd(int docID) {
- if (docID < 0 || docID >= maxDoc) {
- throw new IndexOutOfBoundsException("docID must be 0 .. " + (maxDoc-1) + "; got " + docID);
- }
- try {
- in.seek(field.dataStartFilePointer + field.numValues * (9 + field.pattern.length() + field.maxLength) + docID * (1 + field.ordPattern.length()));
+ public int nextDoc() throws IOException {
+ return advance(docID() + 1);
+ }
+
+ @Override
+ public int docID() {
+ return doc;
+ }
+
+ @Override
+ public long cost() {
+ return maxDoc;
+ }
+
+ int ord;
+
+ @Override
+ public int advance(int target) throws IOException {
+ for (int i = target; i < maxDoc; ++i) {
+ in.seek(field.dataStartFilePointer + field.numValues * (9 + field.pattern.length() + field.maxLength) + i * (1 + field.ordPattern.length()));
SimpleTextUtil.readLine(in, scratch);
try {
- return (int) ordDecoder.parse(scratch.get().utf8ToString()).longValue()-1;
+ ord = (int) ordDecoder.parse(scratch.get().utf8ToString()).longValue()-1;
} catch (ParseException pe) {
throw new CorruptIndexException("failed to parse ord", in, pe);
}
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ if (ord >= 0) {
+ return doc = i;
+ }
}
+ return doc = NO_MORE_DOCS;
}
-
+
+ @Override
+ public int ordValue() {
+ return ord;
+ }
+
+ final BytesRefBuilder term = new BytesRefBuilder();
+
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
+ if (ord < 0 || ord >= field.numValues) {
+ throw new IndexOutOfBoundsException("ord must be 0 .. " + (field.numValues-1) + "; got " + ord);
+ }
+ in.seek(field.dataStartFilePointer + ord * (9 + field.pattern.length() + field.maxLength));
+ SimpleTextUtil.readLine(in, scratch);
+ assert StringHelper.startsWith(scratch.get(), LENGTH): "got " + scratch.get().utf8ToString() + " in=" + in;
+ int len;
try {
- if (ord < 0 || ord >= field.numValues) {
- throw new IndexOutOfBoundsException("ord must be 0 .. " + (field.numValues-1) + "; got " + ord);
- }
- in.seek(field.dataStartFilePointer + ord * (9 + field.pattern.length() + field.maxLength));
- SimpleTextUtil.readLine(in, scratch);
- assert StringHelper.startsWith(scratch.get(), LENGTH): "got " + scratch.get().utf8ToString() + " in=" + in;
- int len;
- try {
- len = decoder.parse(new String(scratch.bytes(), LENGTH.length, scratch.length() - LENGTH.length, StandardCharsets.UTF_8)).intValue();
- } catch (ParseException pe) {
- throw new CorruptIndexException("failed to parse int length", in, pe);
- }
- term.grow(len);
- term.setLength(len);
- in.readBytes(term.bytes(), 0, len);
- return term.get();
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ len = decoder.parse(new String(scratch.bytes(), LENGTH.length, scratch.length() - LENGTH.length, StandardCharsets.UTF_8)).intValue();
+ } catch (ParseException pe) {
+ throw new CorruptIndexException("failed to parse int length", in, pe);
}
+ term.grow(len);
+ term.setLength(len);
+ in.readBytes(term.bytes(), 0, len);
+ return term.get();
}
-
+
@Override
public int getValueCount() {
return (int)field.numValues;
}
- }, maxDoc);
+ };
}
@Override
public SortedNumericDocValues getSortedNumeric(FieldInfo field) throws IOException {
- final LegacyBinaryDocValues binary = getLegacyBinary(field);
- return new LegacySortedNumericDocValuesWrapper(new LegacySortedNumericDocValues() {
- long values[];
-
+ final BinaryDocValues binary = getBinary(field);
+ return new SortedNumericDocValues() {
+
@Override
- public void setDocument(int doc) {
- String csv = binary.get(doc).utf8ToString();
+ public int nextDoc() throws IOException {
+ int doc = binary.nextDoc();
+ setCurrentDoc();
+ return doc;
+ }
+
+ @Override
+ public int docID() {
+ return binary.docID();
+ }
+
+ @Override
+ public long cost() {
+ return binary.cost();
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ int doc = binary.advance(target);
+ setCurrentDoc();
+ return doc;
+ }
+
+ long values[];
+ int index;
+
+ private void setCurrentDoc() throws IOException {
+ if (docID() == NO_MORE_DOCS) {
+ return;
+ }
+ String csv = binary.binaryValue().utf8ToString();
if (csv.length() == 0) {
values = new long[0];
} else {
@@ -376,18 +505,19 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
values[i] = Long.parseLong(s[i]);
}
}
+ index = 0;
}
-
+
@Override
- public long valueAt(int index) {
- return values[index];
+ public long nextValue() throws IOException {
+ return values[index++];
}
-
+
@Override
- public int count() {
+ public int docValueCount() {
return values.length;
}
- }, maxDoc);
+ };
}
@Override
@@ -402,69 +532,77 @@ class SimpleTextDocValuesReader extends DocValuesProducer {
final BytesRefBuilder scratch = new BytesRefBuilder();
final DecimalFormat decoder = new DecimalFormat(field.pattern, new DecimalFormatSymbols(Locale.ROOT));
- return new LegacySortedSetDocValuesWrapper(new LegacySortedSetDocValues() {
+ return new SortedSetDocValues() {
+
String[] currentOrds = new String[0];
int currentIndex = 0;
final BytesRefBuilder term = new BytesRefBuilder();
+ int doc = -1;
@Override
- public long nextOrd() {
- if (currentIndex == currentOrds.length) {
- return NO_MORE_ORDS;
- } else {
- return Long.parseLong(currentOrds[currentIndex++]);
- }
+ public int nextDoc() throws IOException {
+ return advance(doc + 1);
}
-
+
@Override
- public void setDocument(int docID) {
- if (docID < 0 || docID >= maxDoc) {
- throw new IndexOutOfBoundsException("docID must be 0 .. " + (maxDoc-1) + "; got " + docID);
- }
- try {
- in.seek(field.dataStartFilePointer + field.numValues * (9 + field.pattern.length() + field.maxLength) + docID * (1 + field.ordPattern.length()));
+ public int docID() {
+ return doc;
+ }
+
+ @Override
+ public long cost() {
+ return maxDoc;
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ for (int i = target; i < maxDoc; ++i) {
+ in.seek(field.dataStartFilePointer + field.numValues * (9 + field.pattern.length() + field.maxLength) + i * (1 + field.ordPattern.length()));
SimpleTextUtil.readLine(in, scratch);
String ordList = scratch.get().utf8ToString().trim();
- if (ordList.isEmpty()) {
- currentOrds = new String[0];
- } else {
+ if (ordList.isEmpty() == false) {
currentOrds = ordList.split(",");
+ currentIndex = 0;
+ return doc = i;
}
- currentIndex = 0;
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
}
+ return doc = NO_MORE_DOCS;
}
-
+
+ @Override
+ public long nextOrd() throws IOException {
+ if (currentIndex == currentOrds.length) {
+ return NO_MORE_ORDS;
+ } else {
+ return Long.parseLong(currentOrds[currentIndex++]);
+ }
+ }
+
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
+ if (ord < 0 || ord >= field.numValues) {
+ throw new IndexOutOfBoundsException("ord must be 0 .. " + (field.numValues-1) + "; got " + ord);
+ }
+ in.seek(field.dataStartFilePointer + ord * (9 + field.pattern.length() + field.maxLength));
+ SimpleTextUtil.readLine(in, scratch);
+ assert StringHelper.startsWith(scratch.get(), LENGTH): "got " + scratch.get().utf8ToString() + " in=" + in;
+ int len;
try {
- if (ord < 0 || ord >= field.numValues) {
- throw new IndexOutOfBoundsException("ord must be 0 .. " + (field.numValues-1) + "; got " + ord);
- }
- in.seek(field.dataStartFilePointer + ord * (9 + field.pattern.length() + field.maxLength));
- SimpleTextUtil.readLine(in, scratch);
- assert StringHelper.startsWith(scratch.get(), LENGTH): "got " + scratch.get().utf8ToString() + " in=" + in;
- int len;
- try {
- len = decoder.parse(new String(scratch.bytes(), LENGTH.length, scratch.length() - LENGTH.length, StandardCharsets.UTF_8)).intValue();
- } catch (ParseException pe) {
- throw new CorruptIndexException("failed to parse int length", in, pe);
- }
- term.grow(len);
- term.setLength(len);
- in.readBytes(term.bytes(), 0, len);
- return term.get();
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
+ len = decoder.parse(new String(scratch.bytes(), LENGTH.length, scratch.length() - LENGTH.length, StandardCharsets.UTF_8)).intValue();
+ } catch (ParseException pe) {
+ throw new CorruptIndexException("failed to parse int length", in, pe);
}
+ term.grow(len);
+ term.setLength(len);
+ in.readBytes(term.bytes(), 0, len);
+ return term.get();
}
-
+
@Override
public long getValueCount() {
return field.numValues;
}
- }, maxDoc);
+ };
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
index 379942e..2649ae6 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesWriter.java
@@ -22,17 +22,23 @@ import java.math.BigInteger;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Locale;
import java.util.Set;
import org.apache.lucene.codecs.DocValuesConsumer;
import org.apache.lucene.codecs.DocValuesProducer;
-import org.apache.lucene.codecs.LegacyDocValuesIterables;
+import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.DocValuesType;
+import org.apache.lucene.index.EmptyDocValuesProducer;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.IndexFileNames;
+import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.SegmentWriteState;
+import org.apache.lucene.index.SortedDocValues;
+import org.apache.lucene.index.SortedNumericDocValues;
+import org.apache.lucene.index.SortedSetDocValues;
+import org.apache.lucene.index.TermsEnum;
+import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
@@ -72,11 +78,6 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
@Override
public void addNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
- addNumericField(field, LegacyDocValuesIterables.numericIterable(field, valuesProducer, numDocs));
- }
-
- void addNumericField(FieldInfo field, Iterable<Number> values) throws IOException {
-
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.NUMERIC || field.hasNorms();
writeFieldEntry(field, DocValuesType.NUMERIC);
@@ -84,10 +85,17 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
// first pass to find min/max
long minValue = Long.MAX_VALUE;
long maxValue = Long.MIN_VALUE;
- for(Number n : values) {
- long v = n == null ? 0 : n.longValue();
+ NumericDocValues values = valuesProducer.getNumeric(field);
+ int numValues = 0;
+ for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
+ long v = values.longValue();
minValue = Math.min(minValue, v);
maxValue = Math.max(maxValue, v);
+ numValues++;
+ }
+ if (numValues != numDocs) {
+ minValue = Math.min(minValue, 0);
+ maxValue = Math.max(maxValue, 0);
}
// write our minimum value to the .dat, all entries are deltas from that
@@ -118,15 +126,20 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
int numDocsWritten = 0;
// second pass to write the values
- for(Number n : values) {
- long value = n == null ? 0 : n.longValue();
+ values = valuesProducer.getNumeric(field);
+ for (int i = 0; i < numDocs; ++i) {
+ if (values.docID() < i) {
+ values.nextDoc();
+ assert values.docID() >= i;
+ }
+ long value = values.docID() != i ? 0 : values.longValue();
assert value >= minValue;
Number delta = BigInteger.valueOf(value).subtract(BigInteger.valueOf(minValue));
String s = encoder.format(delta);
assert s.length() == patternString.length();
SimpleTextUtil.write(data, s, scratch);
SimpleTextUtil.writeNewline(data);
- if (n == null) {
+ if (values.docID() != i) {
SimpleTextUtil.write(data, "F", scratch);
} else {
SimpleTextUtil.write(data, "T", scratch);
@@ -143,14 +156,14 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
public void addBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.BINARY;
- doAddBinary(field, LegacyDocValuesIterables.binaryIterable(field, valuesProducer, numDocs));
+ doAddBinaryField(field, valuesProducer);
}
-
- private void doAddBinary(FieldInfo field, Iterable<BytesRef> values) throws IOException {
+
+ private void doAddBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
int maxLength = 0;
- for(BytesRef value : values) {
- final int length = value == null ? 0 : value.length;
- maxLength = Math.max(maxLength, length);
+ BinaryDocValues values = valuesProducer.getBinary(field);
+ for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
+ maxLength = Math.max(maxLength, values.binaryValue().length);
}
writeFieldEntry(field, DocValuesType.BINARY);
@@ -170,26 +183,32 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
SimpleTextUtil.writeNewline(data);
final DecimalFormat encoder = new DecimalFormat(sb.toString(), new DecimalFormatSymbols(Locale.ROOT));
+ values = valuesProducer.getBinary(field);
int numDocsWritten = 0;
- for(BytesRef value : values) {
+ for (int i = 0; i < numDocs; ++i) {
+ if (values.docID() < i) {
+ values.nextDoc();
+ assert values.docID() >= i;
+ }
// write length
- final int length = value == null ? 0 : value.length;
+ final int length = values.docID() != i ? 0 : values.binaryValue().length;
SimpleTextUtil.write(data, LENGTH);
SimpleTextUtil.write(data, encoder.format(length), scratch);
SimpleTextUtil.writeNewline(data);
// write bytes -- don't use SimpleText.write
// because it escapes:
- if (value != null) {
+ if (values.docID() == i) {
+ BytesRef value = values.binaryValue();
data.writeBytes(value.bytes, value.offset, value.length);
}
// pad to fit
- for (int i = length; i < maxLength; i++) {
+ for (int j = length; j < maxLength; j++) {
data.writeByte((byte)' ');
}
SimpleTextUtil.writeNewline(data);
- if (value == null) {
+ if (values.docID() != i) {
SimpleTextUtil.write(data, "F", scratch);
} else {
SimpleTextUtil.write(data, "T", scratch);
@@ -203,16 +222,14 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
@Override
public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
- Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSorted(field));
- Iterable<Number> docToOrd = LegacyDocValuesIterables.sortedOrdIterable(valuesProducer, field, numDocs);
-
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED;
writeFieldEntry(field, DocValuesType.SORTED);
int valueCount = 0;
int maxLength = -1;
- for(BytesRef value : values) {
+ TermsEnum terms = valuesProducer.getSorted(field).termsEnum();
+ for(BytesRef value = terms.next(); value != null; value = terms.next()) {
maxLength = Math.max(maxLength, value.length);
valueCount++;
}
@@ -254,7 +271,8 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
// for asserts:
int valuesSeen = 0;
- for(BytesRef value : values) {
+ terms = valuesProducer.getSorted(field).termsEnum();
+ for(BytesRef value = terms.next(); value != null; value = terms.next()) {
// write length
SimpleTextUtil.write(data, LENGTH);
SimpleTextUtil.write(data, encoder.format(value.length), scratch);
@@ -275,52 +293,75 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
assert valuesSeen == valueCount;
- for(Number ord : docToOrd) {
- SimpleTextUtil.write(data, ordEncoder.format(ord.longValue()+1), scratch);
+ SortedDocValues values = valuesProducer.getSorted(field);
+ for (int i = 0; i < numDocs; ++i) {
+ if (values.docID() < i) {
+ values.nextDoc();
+ assert values.docID() >= i;
+ }
+ int ord = -1;
+ if (values.docID() == i) {
+ ord = values.ordValue();
+ }
+ SimpleTextUtil.write(data, ordEncoder.format(ord+1L), scratch);
SimpleTextUtil.writeNewline(data);
}
}
@Override
public void addSortedNumericField(FieldInfo field, final DocValuesProducer valuesProducer) throws IOException {
-
- final Iterable<Number> docToValueCount = LegacyDocValuesIterables.sortedNumericToDocCount(valuesProducer, field, numDocs);
- final Iterable<Number> values = LegacyDocValuesIterables.sortedNumericToValues(valuesProducer, field);
-
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED_NUMERIC;
- doAddBinary(field, new Iterable<BytesRef>() {
+ doAddBinaryField(field, new EmptyDocValuesProducer() {
@Override
- public Iterator<BytesRef> iterator() {
- final StringBuilder builder = new StringBuilder();
- final BytesRefBuilder scratch = new BytesRefBuilder();
- final Iterator<Number> counts = docToValueCount.iterator();
- final Iterator<Number> numbers = values.iterator();
-
- return new Iterator<BytesRef>() {
+ public BinaryDocValues getBinary(FieldInfo field) throws IOException {
+ SortedNumericDocValues values = valuesProducer.getSortedNumeric(field);
+ return new BinaryDocValues() {
@Override
- public boolean hasNext() {
- return counts.hasNext();
+ public int nextDoc() throws IOException {
+ int doc = values.nextDoc();
+ setCurrentDoc();
+ return doc;
}
@Override
- public BytesRef next() {
+ public int docID() {
+ return values.docID();
+ }
+
+ @Override
+ public long cost() {
+ return values.cost();
+ }
+
+ @Override
+ public int advance(int target) throws IOException {
+ int doc = values.advance(target);
+ setCurrentDoc();
+ return doc;
+ }
+
+ final StringBuilder builder = new StringBuilder();
+ BytesRef binaryValue;
+
+ private void setCurrentDoc() throws IOException {
+ if (docID() == NO_MORE_DOCS) {
+ return;
+ }
builder.setLength(0);
- long count = counts.next().longValue();
- for (int i = 0; i < count; i++) {
+ for (int i = 0, count = values.docValueCount(); i < count; ++i) {
if (i > 0) {
builder.append(',');
}
- builder.append(Long.toString(numbers.next().longValue()));
+ builder.append(Long.toString(values.nextValue()));
}
- scratch.copyChars(builder);
- return scratch.get();
+ binaryValue = new BytesRef(builder.toString());
}
@Override
- public void remove() {
- throw new UnsupportedOperationException();
+ public BytesRef binaryValue() throws IOException {
+ return binaryValue;
}
};
}
@@ -329,16 +370,14 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
@Override
public void addSortedSetField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException {
- Iterable<BytesRef> values = LegacyDocValuesIterables.valuesIterable(valuesProducer.getSortedSet(field));
- Iterable<Number> docToOrdCount = LegacyDocValuesIterables.sortedSetOrdCountIterable(valuesProducer, field, numDocs);
- Iterable<Number> ords = LegacyDocValuesIterables.sortedSetOrdsIterable(valuesProducer, field);
assert fieldSeen(field.name);
assert field.getDocValuesType() == DocValuesType.SORTED_SET;
writeFieldEntry(field, DocValuesType.SORTED_SET);
long valueCount = 0;
int maxLength = 0;
- for(BytesRef value : values) {
+ TermsEnum terms = valuesProducer.getSortedSet(field).termsEnum();
+ for(BytesRef value = terms.next(); value != null; value = terms.next()) {
maxLength = Math.max(maxLength, value.length);
valueCount++;
}
@@ -368,12 +407,10 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
// compute ord pattern: this is funny, we encode all values for all docs to find the maximum length
int maxOrdListLength = 0;
StringBuilder sb2 = new StringBuilder();
- Iterator<Number> ordStream = ords.iterator();
- for (Number n : docToOrdCount) {
+ SortedSetDocValues values = valuesProducer.getSortedSet(field);
+ for (int doc = values.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = values.nextDoc()) {
sb2.setLength(0);
- int count = n.intValue();
- for (int i = 0; i < count; i++) {
- long ord = ordStream.next().longValue();
+ for (long ord = values.nextOrd(); ord != SortedSetDocValues.NO_MORE_ORDS; ord = values.nextOrd()) {
if (sb2.length() > 0) {
sb2.append(",");
}
@@ -395,7 +432,8 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
// for asserts:
long valuesSeen = 0;
- for(BytesRef value : values) {
+ terms = valuesProducer.getSortedSet(field).termsEnum();
+ for(BytesRef value = terms.next(); value != null; value = terms.next()) {
// write length
SimpleTextUtil.write(data, LENGTH);
SimpleTextUtil.write(data, encoder.format(value.length), scratch);
@@ -416,22 +454,26 @@ class SimpleTextDocValuesWriter extends DocValuesConsumer {
assert valuesSeen == valueCount;
- ordStream = ords.iterator();
+ values = valuesProducer.getSortedSet(field);
// write the ords for each doc comma-separated
- for(Number n : docToOrdCount) {
+ for (int i = 0; i < numDocs; ++i) {
+ if (values.docID() < i) {
+ values.nextDoc();
+ assert values.docID() >= i;
+ }
sb2.setLength(0);
- int count = n.intValue();
- for (int i = 0; i < count; i++) {
- long ord = ordStream.next().longValue();
- if (sb2.length() > 0) {
- sb2.append(",");
+ if (values.docID() == i) {
+ for (long ord = values.nextOrd(); ord != SortedSetDocValues.NO_MORE_ORDS; ord = values.nextOrd()) {
+ if (sb2.length() > 0) {
+ sb2.append(",");
+ }
+ sb2.append(Long.toString(ord));
}
- sb2.append(Long.toString(ord));
}
// now pad to fit: these are numbers so spaces work well. reader calls trim()
int numPadding = maxOrdListLength - sb2.length();
- for (int i = 0; i < numPadding; i++) {
+ for (int j = 0; j < numPadding; j++) {
sb2.append(' ');
}
SimpleTextUtil.write(data, sb2.toString(), scratch);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
----------------------------------------------------------------------
diff --git a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
index 26b00ec..d9c9fbf 100644
--- a/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
+++ b/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextNormsFormat.java
@@ -20,12 +20,11 @@ package org.apache.lucene.codecs.simpletext;
import java.io.IOException;
import java.util.Collection;
-import org.apache.lucene.codecs.LegacyDocValuesIterables;
import org.apache.lucene.codecs.NormsConsumer;
import org.apache.lucene.codecs.NormsFormat;
import org.apache.lucene.codecs.NormsProducer;
+import org.apache.lucene.index.EmptyDocValuesProducer;
import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.LegacyNumericDocValuesWrapper;
import org.apache.lucene.index.NumericDocValues;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.index.SegmentWriteState;
@@ -69,7 +68,7 @@ public class SimpleTextNormsFormat extends NormsFormat {
@Override
public NumericDocValues getNorms(FieldInfo field) throws IOException {
- return new LegacyNumericDocValuesWrapper(impl.getNumericDocsWithField(field), impl.getNumericNonIterator(field));
+ return impl.getNumeric(field);
}
@Override
@@ -116,7 +115,12 @@ public class SimpleTextNormsFormat extends NormsFormat {
@Override
public void addNormsField(FieldInfo field, NormsProducer normsProducer) throws IOException {
- impl.addNumericField(field, LegacyDocValuesIterables.normsIterable(field, normsProducer, impl.numDocs, false));
+ impl.addNumericField(field, new EmptyDocValuesProducer() {
+ @Override
+ public NumericDocValues getNumeric(FieldInfo field) throws IOException {
+ return normsProducer.getNorms(field);
+ }
+ });
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java b/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
index 35aa100..a07cc3d 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/DocValuesConsumer.java
@@ -325,7 +325,7 @@ public abstract class DocValuesConsumer implements Closeable {
}
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
return current.values.binaryValue();
}
};
@@ -573,7 +573,7 @@ public abstract class DocValuesConsumer implements Closeable {
public int nextDoc() throws IOException {
SortedDocValuesSub sub = docIDMerger.next();
if (sub == null) {
- return NO_MORE_DOCS;
+ return docID = NO_MORE_DOCS;
}
int subOrd = sub.values.ordValue();
assert subOrd != -1;
@@ -603,7 +603,7 @@ public abstract class DocValuesConsumer implements Closeable {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
int segmentNumber = map.getFirstSegmentNumber(ord);
int segmentOrd = (int) map.getFirstSegmentOrd(ord);
return dvs[segmentNumber].lookupOrd(segmentOrd);
@@ -773,7 +773,7 @@ public abstract class DocValuesConsumer implements Closeable {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
int segmentNumber = map.getFirstSegmentNumber(ord);
long segmentOrd = map.getFirstSegmentOrd(ord);
return toMerge.get(segmentNumber).lookupOrd(segmentOrd);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/codecs/LegacyDocValuesIterables.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/LegacyDocValuesIterables.java b/lucene/core/src/java/org/apache/lucene/codecs/LegacyDocValuesIterables.java
index 74c2d80..717bbab 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/LegacyDocValuesIterables.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/LegacyDocValuesIterables.java
@@ -57,7 +57,11 @@ public class LegacyDocValuesIterables {
@Override
public BytesRef next() {
- return values.lookupOrd(nextOrd++);
+ try {
+ return values.lookupOrd(nextOrd++);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
};
}
@@ -82,7 +86,11 @@ public class LegacyDocValuesIterables {
@Override
public BytesRef next() {
- return values.lookupOrd(nextOrd++);
+ try {
+ return values.lookupOrd(nextOrd++);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
};
}
@@ -274,7 +282,6 @@ public class LegacyDocValuesIterables {
return new Iterator<Number>() {
private int nextDocID;
- private int nextCount;
@Override
public boolean hasNext() {
@@ -373,7 +380,7 @@ public class LegacyDocValuesIterables {
* @deprecated Consume {@link NumericDocValues} instead. */
@Deprecated
public static Iterable<Number> normsIterable(final FieldInfo field,
- final NormsProducer normsProducer, final int maxDoc, boolean missingAsZero) {
+ final NormsProducer normsProducer, final int maxDoc) {
return new Iterable<Number>() {
@@ -412,11 +419,9 @@ public class LegacyDocValuesIterables {
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
- } else if (missingAsZero) {
- // Unlike NumericDocValues, norms should return for missing values:
- result = 0;
} else {
- result = null;
+ // Unlike NumericDocValues, norms used to return 0 for missing values:
+ result = 0;
}
return result;
}
@@ -461,7 +466,11 @@ public class LegacyDocValuesIterables {
}
BytesRef result;
if (docIDUpto == values.docID()) {
- result = values.binaryValue();
+ try {
+ result = values.binaryValue();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
} else {
result = null;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/codecs/lucene70/Lucene70DocValuesProducer.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene70/Lucene70DocValuesProducer.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene70/Lucene70DocValuesProducer.java
index 4f80266..e806ea5 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene70/Lucene70DocValuesProducer.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene70/Lucene70DocValuesProducer.java
@@ -974,7 +974,7 @@ final class Lucene70DocValuesProducer extends DocValuesProducer implements Close
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
if (binary instanceof CompressedBinaryDocValues) {
return (int) ((CompressedBinaryDocValues)binary).lookupTerm(key);
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/BinaryDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/BinaryDocValues.java b/lucene/core/src/java/org/apache/lucene/index/BinaryDocValues.java
index f9da94f..66397e4 100644
--- a/lucene/core/src/java/org/apache/lucene/index/BinaryDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/BinaryDocValues.java
@@ -17,6 +17,8 @@
package org.apache.lucene.index;
+import java.io.IOException;
+
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.BytesRef;
@@ -30,8 +32,8 @@ public abstract class BinaryDocValues extends DocIdSetIterator {
protected BinaryDocValues() {}
/**
- * Returns the numeric value for the current document ID.
- * @return numeric value
+ * Returns the binary value for the current document ID.
+ * @return binary value
*/
- public abstract BytesRef binaryValue();
+ public abstract BytesRef binaryValue() throws IOException;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/FilterBinaryDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/FilterBinaryDocValues.java b/lucene/core/src/java/org/apache/lucene/index/FilterBinaryDocValues.java
index 26eb12b..66c4323 100644
--- a/lucene/core/src/java/org/apache/lucene/index/FilterBinaryDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/FilterBinaryDocValues.java
@@ -55,7 +55,7 @@ public abstract class FilterBinaryDocValues extends BinaryDocValues {
}
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
return in.binaryValue();
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java b/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
index 6ed257e..aeb49c5 100644
--- a/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/MultiDocValues.java
@@ -348,7 +348,7 @@ public class MultiDocValues {
}
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
return currentValues.binaryValue();
}
@@ -928,7 +928,7 @@ public class MultiDocValues {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
int subIndex = mapping.getFirstSegmentNumber(ord);
int segmentOrd = (int) mapping.getFirstSegmentOrd(ord);
return values[subIndex].lookupOrd(segmentOrd);
@@ -1039,7 +1039,7 @@ public class MultiDocValues {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
int subIndex = mapping.getFirstSegmentNumber(ord);
long segmentOrd = mapping.getFirstSegmentOrd(ord);
return values[subIndex].lookupOrd(segmentOrd);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/SingletonSortedSetDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/SingletonSortedSetDocValues.java b/lucene/core/src/java/org/apache/lucene/index/SingletonSortedSetDocValues.java
index 88f8f32..225b6a6 100644
--- a/lucene/core/src/java/org/apache/lucene/index/SingletonSortedSetDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/SingletonSortedSetDocValues.java
@@ -79,7 +79,7 @@ final class SingletonSortedSetDocValues extends SortedSetDocValues {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
// cast is ok: single-valued cannot exceed Integer.MAX_VALUE
return in.lookupOrd((int) ord);
}
@@ -90,7 +90,7 @@ final class SingletonSortedSetDocValues extends SortedSetDocValues {
}
@Override
- public long lookupTerm(BytesRef key) {
+ public long lookupTerm(BytesRef key) throws IOException {
return in.lookupTerm(key);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/SortedDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/SortedDocValues.java b/lucene/core/src/java/org/apache/lucene/index/SortedDocValues.java
index d97dbbf..ee70a64 100644
--- a/lucene/core/src/java/org/apache/lucene/index/SortedDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/SortedDocValues.java
@@ -17,6 +17,8 @@
package org.apache.lucene.index;
+import java.io.IOException;
+
import org.apache.lucene.util.BytesRef;
/**
@@ -50,12 +52,12 @@ public abstract class SortedDocValues extends BinaryDocValues {
* @param ord ordinal to lookup (must be >= 0 and < {@link #getValueCount()})
* @see #ordValue()
*/
- public abstract BytesRef lookupOrd(int ord);
+ public abstract BytesRef lookupOrd(int ord) throws IOException;
private final BytesRef empty = new BytesRef();
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
int ord = ordValue();
if (ord == -1) {
return empty;
@@ -77,7 +79,7 @@ public abstract class SortedDocValues extends BinaryDocValues {
*
* @param key Key to look up
**/
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
int low = 0;
int high = getValueCount()-1;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/SortedSetDocValues.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/SortedSetDocValues.java b/lucene/core/src/java/org/apache/lucene/index/SortedSetDocValues.java
index c442c5f..e53a0e7 100644
--- a/lucene/core/src/java/org/apache/lucene/index/SortedSetDocValues.java
+++ b/lucene/core/src/java/org/apache/lucene/index/SortedSetDocValues.java
@@ -58,7 +58,7 @@ public abstract class SortedSetDocValues extends DocIdSetIterator {
* @param ord ordinal to lookup
* @see #nextOrd
*/
- public abstract BytesRef lookupOrd(long ord);
+ public abstract BytesRef lookupOrd(long ord) throws IOException;
/**
* Returns the number of unique values.
@@ -73,7 +73,7 @@ public abstract class SortedSetDocValues extends DocIdSetIterator {
*
* @param key Key to look up
**/
- public long lookupTerm(BytesRef key) {
+ public long lookupTerm(BytesRef key) throws IOException {
long low = 0;
long high = getValueCount()-1;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/index/SortingLeafReader.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/SortingLeafReader.java b/lucene/core/src/java/org/apache/lucene/index/SortingLeafReader.java
index 3e34436..b207432 100644
--- a/lucene/core/src/java/org/apache/lucene/index/SortingLeafReader.java
+++ b/lucene/core/src/java/org/apache/lucene/index/SortingLeafReader.java
@@ -406,7 +406,7 @@ class SortingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return in.lookupOrd(ord);
}
@@ -483,7 +483,7 @@ class SortingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
return in.lookupOrd(ord);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
index b638a29..b6c17c0 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
@@ -759,7 +759,7 @@ public abstract class FieldComparator<T> {
}
@Override
- public void setBottom(final int bottom) {
+ public void setBottom(final int bottom) throws IOException {
bottomSlot = bottom;
bottomValue = values[bottomSlot];
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java b/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
index 7f84953..6019376 100644
--- a/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
+++ b/lucene/core/src/java/org/apache/lucene/search/LeafFieldComparator.java
@@ -61,7 +61,7 @@ public interface LeafFieldComparator {
*
* @param slot the currently weakest (sorted last) slot in the queue
*/
- void setBottom(final int slot);
+ void setBottom(final int slot) throws IOException;
/**
* Compare the bottom of the queue with this doc. This will
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java b/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java
index 25fa8d3..f10dbf7 100644
--- a/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/SortedSetSelector.java
@@ -128,7 +128,7 @@ public class SortedSetSelector {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return in.lookupOrd(ord);
}
@@ -138,7 +138,7 @@ public class SortedSetSelector {
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
return (int) in.lookupTerm(key);
}
@@ -190,7 +190,7 @@ public class SortedSetSelector {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return in.lookupOrd(ord);
}
@@ -200,7 +200,7 @@ public class SortedSetSelector {
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
return (int) in.lookupTerm(key);
}
@@ -259,7 +259,7 @@ public class SortedSetSelector {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return in.lookupOrd(ord);
}
@@ -269,7 +269,7 @@ public class SortedSetSelector {
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
return (int) in.lookupTerm(key);
}
@@ -340,7 +340,7 @@ public class SortedSetSelector {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return in.lookupOrd(ord);
}
@@ -350,7 +350,7 @@ public class SortedSetSelector {
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
return (int) in.lookupTerm(key);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java b/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
index 7ecb9f6..c7274d5 100644
--- a/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
+++ b/lucene/core/src/java/org/apache/lucene/search/TopFieldCollector.java
@@ -99,7 +99,7 @@ public abstract class TopFieldCollector extends TopDocsCollector<Entry> {
}
}
- protected final void setBottom(int slot) {
+ protected final void setBottom(int slot) throws IOException {
for (LeafFieldComparator comparator : comparators) {
comparator.setBottom(slot);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java b/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
index f552ae9..ed2b66f 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
@@ -51,7 +51,7 @@ import static org.apache.lucene.search.DocIdSetIterator.NO_MORE_DOCS;
public class TestBinaryDocValuesUpdates extends LuceneTestCase {
- static long getValue(BinaryDocValues bdv) {
+ static long getValue(BinaryDocValues bdv) throws IOException {
BytesRef term = bdv.binaryValue();
int idx = term.offset;
assert term.length > 0;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
----------------------------------------------------------------------
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
index 38fb174..1219494 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java
@@ -92,7 +92,7 @@ public class SortedSetDocValuesFacetCounts extends Facets {
return getDim(dim, ordRange, topN);
}
- private final FacetResult getDim(String dim, OrdRange ordRange, int topN) {
+ private final FacetResult getDim(String dim, OrdRange ordRange, int topN) throws IOException {
TopOrdAndIntQueue q = null;
@@ -262,7 +262,7 @@ public class SortedSetDocValuesFacetCounts extends Facets {
}
@Override
- public Number getSpecificValue(String dim, String... path) {
+ public Number getSpecificValue(String dim, String... path) throws IOException {
if (path.length != 1) {
throw new IllegalArgumentException("path must be length=1");
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
index 312a3e2..4de04f0 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
@@ -102,7 +102,7 @@ abstract public class AbstractFirstPassGroupingCollector<GROUP_VALUE_TYPE> exten
* @param fillFields Whether to fill to {@link SearchGroup#sortValues}
* @return top groups, starting from offset
*/
- public Collection<SearchGroup<GROUP_VALUE_TYPE>> getTopGroups(int groupOffset, boolean fillFields) {
+ public Collection<SearchGroup<GROUP_VALUE_TYPE>> getTopGroups(int groupOffset, boolean fillFields) throws IOException {
//System.out.println("FP.getTopGroups groupOffset=" + groupOffset + " fillFields=" + fillFields + " groupMap.size()=" + groupMap.size());
@@ -299,7 +299,7 @@ abstract public class AbstractFirstPassGroupingCollector<GROUP_VALUE_TYPE> exten
}
}
- private void buildSortedSet() {
+ private void buildSortedSet() throws IOException {
final Comparator<CollectedSearchGroup<?>> comparator = new Comparator<CollectedSearchGroup<?>>() {
@Override
public int compare(CollectedSearchGroup<?> o1, CollectedSearchGroup<?> o2) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
index 6601336..8d1781e 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
@@ -135,7 +135,7 @@ public class BlockGroupingCollector extends SimpleCollector {
// Called when we transition to another group; if the
// group is competitive we insert into the group queue
- private void processGroup() {
+ private void processGroup() throws IOException {
totalGroupCount++;
//System.out.println(" processGroup ord=" + lastGroupOrd + " competes=" + groupCompetes + " count=" + subDocUpto + " groupDoc=" + topGroupDoc);
if (groupCompetes) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java
index a48df03..efa75d6 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/term/TermGroupFacetCollector.java
@@ -273,7 +273,7 @@ public abstract class TermGroupFacetCollector extends AbstractGroupFacetCollecto
}
}
- private void process(int groupOrd, int facetOrd) {
+ private void process(int groupOrd, int facetOrd) throws IOException {
if (facetOrd < startFacetOrd || facetOrd >= endFacetOrd) {
return;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
index 6a7d9ca..313e92f 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
@@ -352,7 +352,7 @@ public class DistinctValuesCollectorTest extends AbstractGroupingTestCase {
@SuppressWarnings({"unchecked","rawtypes"})
private <T extends Comparable> AbstractDistinctValuesCollector<AbstractDistinctValuesCollector.GroupCount<T>> createDistinctCountCollector(AbstractFirstPassGroupingCollector<T> firstPassGroupingCollector,
String groupField,
- String countField) {
+ String countField) throws IOException {
Random random = random();
Collection<SearchGroup<T>> searchGroups = firstPassGroupingCollector.getTopGroups(0, false);
if (FunctionFirstPassGroupingCollector.class.isAssignableFrom(firstPassGroupingCollector.getClass())) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
----------------------------------------------------------------------
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
index 4a59632..6e2422c 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
@@ -305,7 +305,7 @@ public class TestGrouping extends LuceneTestCase {
}
}
- private Collection<SearchGroup<BytesRef>> getSearchGroups(AbstractFirstPassGroupingCollector<?> c, int groupOffset, boolean fillFields) {
+ private Collection<SearchGroup<BytesRef>> getSearchGroups(AbstractFirstPassGroupingCollector<?> c, int groupOffset, boolean fillFields) throws IOException {
if (TermFirstPassGroupingCollector.class.isAssignableFrom(c.getClass())) {
return ((TermFirstPassGroupingCollector) c).getTopGroups(groupOffset, fillFields);
} else if (FunctionFirstPassGroupingCollector.class.isAssignableFrom(c.getClass())) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/join/src/java/org/apache/lucene/search/join/BlockJoinSelector.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/java/org/apache/lucene/search/join/BlockJoinSelector.java b/lucene/join/src/java/org/apache/lucene/search/join/BlockJoinSelector.java
index 212d75b..26b416d 100644
--- a/lucene/join/src/java/org/apache/lucene/search/join/BlockJoinSelector.java
+++ b/lucene/join/src/java/org/apache/lucene/search/join/BlockJoinSelector.java
@@ -172,7 +172,7 @@ public class BlockJoinSelector {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
return values.lookupOrd(ord);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/join/src/java/org/apache/lucene/search/join/GenericTermsCollector.java
----------------------------------------------------------------------
diff --git a/lucene/join/src/java/org/apache/lucene/search/join/GenericTermsCollector.java b/lucene/join/src/java/org/apache/lucene/search/join/GenericTermsCollector.java
index 3a630a1..3ad0fe3 100644
--- a/lucene/join/src/java/org/apache/lucene/search/join/GenericTermsCollector.java
+++ b/lucene/join/src/java/org/apache/lucene/search/join/GenericTermsCollector.java
@@ -84,7 +84,7 @@ interface GenericTermsCollector extends Collector {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
final BytesRef val = target.lookupOrd(ord);
out.println(val.toString()+", ");
return val;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java
----------------------------------------------------------------------
diff --git a/lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java b/lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java
index 185b7ab..b64afc5 100644
--- a/lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java
+++ b/lucene/misc/src/test/org/apache/lucene/search/TestDiversifiedTopDocsCollector.java
@@ -191,7 +191,7 @@ public class TestDiversifiedTopDocsCollector extends LuceneTestCase {
return vals.cost();
}
@Override
- public long longValue() {
+ public long longValue() throws IOException {
return vals == null ? -1 : vals.binaryValue().hashCode();
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
----------------------------------------------------------------------
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java b/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
index 3cc9023..d450600 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/AssertingLeafReader.java
@@ -505,7 +505,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
assertThread("Binary doc values", creationThread);
assert in.docID() != -1;
assert in.docID() != NO_MORE_DOCS;
@@ -579,7 +579,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef lookupOrd(int ord) {
+ public BytesRef lookupOrd(int ord) throws IOException {
assertThread("Sorted doc values", creationThread);
assert ord >= 0 && ord < valueCount;
final BytesRef result = in.lookupOrd(ord);
@@ -596,7 +596,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef binaryValue() {
+ public BytesRef binaryValue() throws IOException {
assertThread("Sorted doc values", creationThread);
final BytesRef result = in.binaryValue();
assert result.isValid();
@@ -604,7 +604,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public int lookupTerm(BytesRef key) {
+ public int lookupTerm(BytesRef key) throws IOException {
assertThread("Sorted doc values", creationThread);
assert key.isValid();
int result = in.lookupTerm(key);
@@ -750,7 +750,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public BytesRef lookupOrd(long ord) {
+ public BytesRef lookupOrd(long ord) throws IOException {
assertThread("Sorted set doc values", creationThread);
assert ord >= 0 && ord < valueCount;
final BytesRef result = in.lookupOrd(ord);
@@ -767,7 +767,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public long lookupTerm(BytesRef key) {
+ public long lookupTerm(BytesRef key) throws IOException {
assertThread("Sorted set doc values", creationThread);
assert key.isValid();
long result = in.lookupTerm(key);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/request/IntervalFacets.java b/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
index 2cf24e5..dfe0f77 100644
--- a/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
+++ b/solr/core/src/java/org/apache/solr/request/IntervalFacets.java
@@ -626,7 +626,7 @@ public class IntervalFacets implements Iterable<FacetInterval> {
*
* @param sdv DocValues for the current reader
*/
- public void updateContext(SortedDocValues sdv) {
+ public void updateContext(SortedDocValues sdv) throws IOException {
if (start == null) {
/*
* Unset start. All ordinals will be greater than -1.
@@ -689,7 +689,7 @@ public class IntervalFacets implements Iterable<FacetInterval> {
*
* @param sdv DocValues for the current reader
*/
- public void updateContext(SortedSetDocValues sdv) {
+ public void updateContext(SortedSetDocValues sdv) throws IOException {
if (start == null) {
/*
* Unset start. All ordinals will be greater than -1.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
index f1b5333..cf3971c 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessorByHashDV.java
@@ -332,7 +332,13 @@ class FacetFieldProcessorByHashDV extends FacetFieldProcessor {
// TODO support SortedSetDocValues
SortedDocValues globalDocValues = FieldUtil.getSortedDocValues(fcontext.qcontext, sf, null);
- ((TermOrdCalc)calc).lookupOrdFunction = globalDocValues::lookupOrd;
+ ((TermOrdCalc)calc).lookupOrdFunction = ord -> {
+ try {
+ return globalDocValues.lookupOrd(ord);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ };
DocSetUtil.collectSortedDocSet(fcontext.base, fcontext.searcher.getIndexReader(), new SimpleCollector() {
SortedDocValues docValues = globalDocValues; // this segment/leaf. NN
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.java b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.java
index c52df36..72a88ca 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/UniqueMultiDvSlotAcc.java
@@ -49,7 +49,7 @@ class UniqueMultiDvSlotAcc extends UniqueSlotAcc {
}
@Override
- protected BytesRef lookupOrd(int ord) {
+ protected BytesRef lookupOrd(int ord) throws IOException {
return topLevel.lookupOrd(ord);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotAcc.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotAcc.java b/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotAcc.java
index 870b894..e0a1852 100644
--- a/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotAcc.java
+++ b/solr/core/src/java/org/apache/solr/search/facet/UniqueSinglevaluedSlotAcc.java
@@ -49,7 +49,7 @@ class UniqueSinglevaluedSlotAcc extends UniqueSlotAcc {
}
@Override
- protected BytesRef lookupOrd(int ord) {
+ protected BytesRef lookupOrd(int ord) throws IOException {
return topLevel.lookupOrd(ord);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/grouping/Command.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/Command.java b/solr/core/src/java/org/apache/solr/search/grouping/Command.java
index d719218..55e2d96 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/Command.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/Command.java
@@ -45,7 +45,7 @@ public interface Command<T> {
*
* @return The results of the collectors
*/
- T result();
+ T result() throws IOException;
/**
* @return The key of this command to uniquely identify itself
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
index 55106ec..fc04599 100644
--- a/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
+++ b/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/SearchGroupsFieldCommand.java
@@ -117,7 +117,7 @@ public class SearchGroupsFieldCommand implements Command<SearchGroupsFieldComman
}
@Override
- public SearchGroupsFieldCommandResult result() {
+ public SearchGroupsFieldCommandResult result() throws IOException {
final Collection<SearchGroup<BytesRef>> topGroups;
if (firstPassGroupingCollector != null) {
if (field.getType().getNumericType() != null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetAccsHolder.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetAccsHolder.java b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetAccsHolder.java
index bf7f7b2..00b3ac4 100644
--- a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetAccsHolder.java
+++ b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFacetAccsHolder.java
@@ -85,7 +85,7 @@ class BlockJoinFacetAccsHolder {
}
}
- NamedList getFacets() {
+ NamedList getFacets() throws IOException {
NamedList<NamedList<Integer>> facets = new NamedList<>(blockJoinFieldFacetAccumulators.length);
for (BlockJoinFieldFacetAccumulator state : blockJoinFieldFacetAccumulators) {
facets.add(state.getFieldName(), state.getFacetValue());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fb088817/solr/core/src/java/org/apache/solr/search/join/BlockJoinFieldFacetAccumulator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFieldFacetAccumulator.java b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFieldFacetAccumulator.java
index fb4a30c..141b095 100644
--- a/solr/core/src/java/org/apache/solr/search/join/BlockJoinFieldFacetAccumulator.java
+++ b/solr/core/src/java/org/apache/solr/search/join/BlockJoinFieldFacetAccumulator.java
@@ -171,7 +171,7 @@ class BlockJoinFieldFacetAccumulator {
}
/** copy paste from {@link DocValuesFacets} */
- NamedList<Integer> getFacetValue() {
+ NamedList<Integer> getFacetValue() throws IOException {
NamedList<Integer> facetValue = new NamedList<>();
final CharsRefBuilder charsRef = new CharsRefBuilder(); // if there is no globs, take segment's ones
for (int i = 1; i< (globalCounts!=null ? globalCounts.length: segmentAccums.length); i++) {