diff --git a/lucene/core/src/java/org/apache/lucene/search/FieldCache.java b/lucene/core/src/java/org/apache/lucene/search/FieldCache.java
index f08621f8206..7c0e54946ce 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FieldCache.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FieldCache.java
@@ -20,11 +20,12 @@ package org.apache.lucene.search;
import java.io.IOException;
import java.io.PrintStream;
-import org.apache.lucene.analysis.NumericTokenStream; // for javadocs
-import org.apache.lucene.document.DoubleField; // for javadocs
-import org.apache.lucene.document.FloatField; // for javadocs
-import org.apache.lucene.document.IntField; // for javadocs
-import org.apache.lucene.document.LongField; // for javadocs
+import org.apache.lucene.analysis.NumericTokenStream;
+import org.apache.lucene.document.DoubleField;
+import org.apache.lucene.document.FloatField;
+import org.apache.lucene.document.IntField;
+import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.index.AtomicReader;
import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.DocTermOrds;
@@ -253,122 +254,139 @@ public interface FieldCache {
*/
public Bits getDocsWithField(AtomicReader reader, String field) throws IOException;
- /** Checks the internal cache for an appropriate entry, and if none is
- * found, reads the terms in field
as integers and returns an array
- * of size reader.maxDoc()
of the value each document
- * has in the given field.
- * @param reader Used to get field values.
- * @param field Which field contains the integers.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
- * @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ /**
+ * Returns an {@link Ints} over the values found in documents in the given
+ * field.
+ *
+ * @see #getInts(AtomicReader, String, IntParser, boolean)
*/
public Ints getInts (AtomicReader reader, String field, boolean setDocsWithField) throws IOException;
- /** Checks the internal cache for an appropriate entry, and if none is found,
- * reads the terms in field
as integers and returns an array of
- * size reader.maxDoc()
of the value each document has in the
- * given field.
- * @param reader Used to get field values.
- * @param field Which field contains the integers.
- * @param parser Computes integer for string values.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
+ /**
+ * Returns an {@link Ints} over the values found in documents in the given
+ * field. If the field was indexed as {@link NumericDocValuesField}, it simply
+ * uses {@link AtomicReader#getNumericDocValues(String)} to read the values.
+ * Otherwise, it checks the internal cache for an appropriate entry, and if
+ * none is found, reads the terms in field
as ints and returns
+ * an array of size reader.maxDoc()
of the value each document
+ * has in the given field.
+ *
+ * @param reader
+ * Used to get field values.
+ * @param field
+ * Which field contains the longs.
+ * @param parser
+ * Computes int for string values. May be {@code null} if the
+ * requested field was indexed as {@link NumericDocValuesField} or
+ * {@link IntField}.
+ * @param setDocsWithField
+ * If true then {@link #getDocsWithField} will also be computed and
+ * stored in the FieldCache.
* @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ * @throws IOException
+ * If any error occurs.
*/
public Ints getInts (AtomicReader reader, String field, IntParser parser, boolean setDocsWithField) throws IOException;
- /** Checks the internal cache for an appropriate entry, and if
- * none is found, reads the terms in field
as floats and returns an array
- * of size reader.maxDoc()
of the value each document
- * has in the given field.
- * @param reader Used to get field values.
- * @param field Which field contains the floats.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
- * @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ /**
+ * Returns a {@link Floats} over the values found in documents in the given
+ * field.
+ *
+ * @see #getFloats(AtomicReader, String, FloatParser, boolean)
*/
public Floats getFloats (AtomicReader reader, String field, boolean setDocsWithField) throws IOException;
- /** Checks the internal cache for an appropriate entry, and if
- * none is found, reads the terms in field
as floats and returns an array
- * of size reader.maxDoc()
of the value each document
+ /**
+ * Returns a {@link Floats} over the values found in documents in the given
+ * field. If the field was indexed as {@link NumericDocValuesField}, it simply
+ * uses {@link AtomicReader#getNumericDocValues(String)} to read the values.
+ * Otherwise, it checks the internal cache for an appropriate entry, and if
+ * none is found, reads the terms in field
as floats and returns
+ * an array of size reader.maxDoc()
of the value each document
* has in the given field.
- * @param reader Used to get field values.
- * @param field Which field contains the floats.
- * @param parser Computes float for string values.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
+ *
+ * @param reader
+ * Used to get field values.
+ * @param field
+ * Which field contains the floats.
+ * @param parser
+ * Computes float for string values. May be {@code null} if the
+ * requested field was indexed as {@link NumericDocValuesField} or
+ * {@link FloatField}.
+ * @param setDocsWithField
+ * If true then {@link #getDocsWithField} will also be computed and
+ * stored in the FieldCache.
* @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ * @throws IOException
+ * If any error occurs.
*/
public Floats getFloats (AtomicReader reader, String field, FloatParser parser, boolean setDocsWithField) throws IOException;
/**
- * Checks the internal cache for an appropriate entry, and if none is
- * found, reads the terms in field
as longs and returns an array
- * of size reader.maxDoc()
of the value each document
+ * Returns a {@link Longs} over the values found in documents in the given
+ * field.
+ *
+ * @see #getLongs(AtomicReader, String, LongParser, boolean)
+ */
+ public Longs getLongs(AtomicReader reader, String field, boolean setDocsWithField) throws IOException;
+
+ /**
+ * Returns a {@link Longs} over the values found in documents in the given
+ * field. If the field was indexed as {@link NumericDocValuesField}, it simply
+ * uses {@link AtomicReader#getNumericDocValues(String)} to read the values.
+ * Otherwise, it checks the internal cache for an appropriate entry, and if
+ * none is found, reads the terms in field
as longs and returns
+ * an array of size reader.maxDoc()
of the value each document
* has in the given field.
- *
- * @param reader Used to get field values.
- * @param field Which field contains the longs.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
+ *
+ * @param reader
+ * Used to get field values.
+ * @param field
+ * Which field contains the longs.
+ * @param parser
+ * Computes long for string values. May be {@code null} if the
+ * requested field was indexed as {@link NumericDocValuesField} or
+ * {@link LongField}.
+ * @param setDocsWithField
+ * If true then {@link #getDocsWithField} will also be computed and
+ * stored in the FieldCache.
* @return The values in the given field for each document.
- * @throws java.io.IOException If any error occurs.
+ * @throws IOException
+ * If any error occurs.
*/
- public Longs getLongs(AtomicReader reader, String field, boolean setDocsWithField)
- throws IOException;
+ public Longs getLongs(AtomicReader reader, String field, LongParser parser, boolean setDocsWithField) throws IOException;
/**
- * Checks the internal cache for an appropriate entry, and if none is found,
- * reads the terms in field
as longs and returns an array of
- * size reader.maxDoc()
of the value each document has in the
- * given field.
+ * Returns a {@link Doubles} over the values found in documents in the given
+ * field.
*
- * @param reader Used to get field values.
- * @param field Which field contains the longs.
- * @param parser Computes integer for string values.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
- * @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ * @see #getDoubles(AtomicReader, String, DoubleParser, boolean)
*/
- public Longs getLongs(AtomicReader reader, String field, LongParser parser, boolean setDocsWithField)
- throws IOException;
+ public Doubles getDoubles(AtomicReader reader, String field, boolean setDocsWithField) throws IOException;
/**
- * Checks the internal cache for an appropriate entry, and if none is
- * found, reads the terms in field
as integers and returns an array
- * of size reader.maxDoc()
of the value each document
+ * Returns a {@link Doubles} over the values found in documents in the given
+ * field. If the field was indexed as {@link NumericDocValuesField}, it simply
+ * uses {@link AtomicReader#getNumericDocValues(String)} to read the values.
+ * Otherwise, it checks the internal cache for an appropriate entry, and if
+ * none is found, reads the terms in field
as doubles and returns
+ * an array of size reader.maxDoc()
of the value each document
* has in the given field.
- *
- * @param reader Used to get field values.
- * @param field Which field contains the doubles.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
+ *
+ * @param reader
+ * Used to get field values.
+ * @param field
+ * Which field contains the longs.
+ * @param parser
+ * Computes double for string values. May be {@code null} if the
+ * requested field was indexed as {@link NumericDocValuesField} or
+ * {@link DoubleField}.
+ * @param setDocsWithField
+ * If true then {@link #getDocsWithField} will also be computed and
+ * stored in the FieldCache.
* @return The values in the given field for each document.
- * @throws IOException If any error occurs.
- */
- public Doubles getDoubles(AtomicReader reader, String field, boolean setDocsWithField)
- throws IOException;
-
- /**
- * Checks the internal cache for an appropriate entry, and if none is found,
- * reads the terms in field
as doubles and returns an array of
- * size reader.maxDoc()
of the value each document has in the
- * given field.
- *
- * @param reader Used to get field values.
- * @param field Which field contains the doubles.
- * @param parser Computes integer for string values.
- * @param setDocsWithField If true then {@link #getDocsWithField} will
- * also be computed and stored in the FieldCache.
- * @return The values in the given field for each document.
- * @throws IOException If any error occurs.
+ * @throws IOException
+ * If any error occurs.
*/
public Doubles getDoubles(AtomicReader reader, String field, DoubleParser parser, boolean setDocsWithField) throws IOException;
diff --git a/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java b/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java
index 85b77d902bc..6d2ff2b41b9 100644
--- a/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java
+++ b/lucene/core/src/java/org/apache/lucene/search/FieldCacheImpl.java
@@ -353,12 +353,12 @@ class FieldCacheImpl implements FieldCache {
caches.get(DocsWithFieldCache.class).put(reader, new CacheKey(field, null), bits);
}
- // inherit javadocs
+ @Override
public Ints getInts (AtomicReader reader, String field, boolean setDocsWithField) throws IOException {
return getInts(reader, field, null, setDocsWithField);
}
- // inherit javadocs
+ @Override
public Ints getInts(AtomicReader reader, String field, IntParser parser, boolean setDocsWithField)
throws IOException {
final NumericDocValues valuesIn = reader.getNumericDocValues(field);
@@ -565,13 +565,13 @@ class FieldCacheImpl implements FieldCache {
}
}
- // inherit javadocs
+ @Override
public Floats getFloats (AtomicReader reader, String field, boolean setDocsWithField)
throws IOException {
return getFloats(reader, field, null, setDocsWithField);
}
- // inherit javadocs
+ @Override
public Floats getFloats(AtomicReader reader, String field, FloatParser parser, boolean setDocsWithField)
throws IOException {
final NumericDocValues valuesIn = reader.getNumericDocValues(field);
@@ -671,12 +671,12 @@ class FieldCacheImpl implements FieldCache {
}
}
- // inherit javadocs
+ @Override
public Longs getLongs(AtomicReader reader, String field, boolean setDocsWithField) throws IOException {
return getLongs(reader, field, null, setDocsWithField);
}
- // inherit javadocs
+ @Override
public Longs getLongs(AtomicReader reader, String field, FieldCache.LongParser parser, boolean setDocsWithField)
throws IOException {
final NumericDocValues valuesIn = reader.getNumericDocValues(field);
@@ -790,13 +790,13 @@ class FieldCacheImpl implements FieldCache {
}
}
- // inherit javadocs
+ @Override
public Doubles getDoubles(AtomicReader reader, String field, boolean setDocsWithField)
throws IOException {
return getDoubles(reader, field, null, setDocsWithField);
}
- // inherit javadocs
+ @Override
public Doubles getDoubles(AtomicReader reader, String field, FieldCache.DoubleParser parser, boolean setDocsWithField)
throws IOException {
final NumericDocValues valuesIn = reader.getNumericDocValues(field);
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java
index 73c5d497548..d4951b5ba0f 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleFieldSource.java
@@ -31,13 +31,9 @@ import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueDouble;
/**
- * Obtains float field values from the {@link org.apache.lucene.search.FieldCache}
- * using getFloats()
- * and makes those values available as other numeric types, casting as needed.
- *
- *
+ * Obtains double field values from {@link FieldCache#getDoubles} and makes
+ * those values available as other numeric types, casting as needed.
*/
-
public class DoubleFieldSource extends FieldCacheSource {
protected final FieldCache.DoubleParser parser;
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java
index c81526365c4..3c7f3b1bb6a 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/FloatFieldSource.java
@@ -29,13 +29,9 @@ import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueFloat;
/**
- * Obtains float field values from the {@link org.apache.lucene.search.FieldCache}
- * using getFloats()
- * and makes those values available as other numeric types, casting as needed.
- *
- *
+ * Obtains float field values from {@link FieldCache#getFloats} and makes those
+ * values available as other numeric types, casting as needed.
*/
-
public class FloatFieldSource extends FieldCacheSource {
protected final FieldCache.FloatParser parser;
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java
index 768d9d77e5a..06f8552d681 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IntFieldSource.java
@@ -31,12 +31,9 @@ import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueInt;
/**
- * Obtains int field values from the {@link org.apache.lucene.search.FieldCache}
- * using getInts()
- * and makes those values available as other numeric types, casting as needed. *
- *
+ * Obtains int field values from {@link FieldCache#getInts} and makes those
+ * values available as other numeric types, casting as needed.
*/
-
public class IntFieldSource extends FieldCacheSource {
final FieldCache.IntParser parser;
diff --git a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java
index d1718313d8b..90720b15fdf 100644
--- a/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java
+++ b/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/LongFieldSource.java
@@ -31,13 +31,9 @@ import org.apache.lucene.util.mutable.MutableValue;
import org.apache.lucene.util.mutable.MutableValueLong;
/**
- * Obtains float field values from the {@link org.apache.lucene.search.FieldCache}
- * using getFloats()
- * and makes those values available as other numeric types, casting as needed.
- *
- *
+ * Obtains long field values from {@link FieldCache#getLongs} and makes those
+ * values available as other numeric types, casting as needed.
*/
-
public class LongFieldSource extends FieldCacheSource {
protected final FieldCache.LongParser parser;