Rename AtomicFieldData to LeafFieldData (#53554)

This conforms with lucene's LeafReader naming convention, and
matches other per-segment structures in elasticsearch.
This commit is contained in:
Alan Woodward 2020-03-17 12:25:51 +00:00
parent 79600eb38b
commit 71b703edd1
76 changed files with 309 additions and 307 deletions

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
@ -46,7 +46,7 @@ final class CountMethodValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicNumericFieldData leafData = (AtomicNumericFieldData) fieldData.load(leaf);
LeafNumericFieldData leafData = (LeafNumericFieldData) fieldData.load(leaf);
final SortedNumericDoubleValues values = leafData.getDoubleValues();
return new DoubleDocValues(this) {

View File

@ -29,7 +29,7 @@ import java.util.TimeZone;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.NumericDoubleValues;
import org.elasticsearch.search.MultiValueMode;
@ -52,7 +52,7 @@ class DateMethodValueSource extends FieldDataValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicNumericFieldData leafData = (AtomicNumericFieldData) fieldData.load(leaf);
LeafNumericFieldData leafData = (LeafNumericFieldData) fieldData.load(leaf);
final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT);
NumericDoubleValues docValues = multiValueMode.select(leafData.getDoubleValues());
return new DoubleDocValues(this) {

View File

@ -27,7 +27,7 @@ import java.util.function.ToIntFunction;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.NumericDoubleValues;
import org.elasticsearch.search.MultiValueMode;
@ -41,7 +41,7 @@ class DateObjectValueSource extends FieldDataValueSource {
final String methodName;
final ToIntFunction<ReadableDateTime> function;
DateObjectValueSource(IndexFieldData<?> indexFieldData, MultiValueMode multiValueMode,
DateObjectValueSource(IndexFieldData<?> indexFieldData, MultiValueMode multiValueMode,
String methodName, ToIntFunction<ReadableDateTime> function) {
super(indexFieldData, multiValueMode);
@ -54,7 +54,7 @@ class DateObjectValueSource extends FieldDataValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicNumericFieldData leafData = (AtomicNumericFieldData) fieldData.load(leaf);
LeafNumericFieldData leafData = (LeafNumericFieldData) fieldData.load(leaf);
MutableDateTime joda = new MutableDateTime(0, DateTimeZone.UTC);
NumericDoubleValues docValues = multiValueMode.select(leafData.getDoubleValues());
return new DoubleDocValues(this) {

View File

@ -23,7 +23,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
@ -46,7 +46,7 @@ final class EmptyMemberValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicNumericFieldData leafData = (AtomicNumericFieldData) fieldData.load(leaf);
LeafNumericFieldData leafData = (LeafNumericFieldData) fieldData.load(leaf);
final SortedNumericDoubleValues values = leafData.getDoubleValues();
return new DoubleDocValues(this) {
@Override

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.NumericDoubleValues;
import org.elasticsearch.search.MultiValueMode;
@ -67,7 +67,7 @@ class FieldDataValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicNumericFieldData leafData = (AtomicNumericFieldData) fieldData.load(leaf);
LeafNumericFieldData leafData = (LeafNumericFieldData) fieldData.load(leaf);
NumericDoubleValues docValues = multiValueMode.select(leafData.getDoubleValues());
return new DoubleDocValues(this) {
@Override

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.LeafGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.MultiGeoPointValues;
@ -44,7 +44,7 @@ final class GeoEmptyValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicGeoPointFieldData leafData = (AtomicGeoPointFieldData) fieldData.load(leaf);
LeafGeoPointFieldData leafData = (LeafGeoPointFieldData) fieldData.load(leaf);
final MultiGeoPointValues values = leafData.getGeoPointValues();
return new DoubleDocValues(this) {
@Override

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.LeafGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.MultiGeoPointValues;
@ -44,7 +44,7 @@ final class GeoLatitudeValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicGeoPointFieldData leafData = (AtomicGeoPointFieldData) fieldData.load(leaf);
LeafGeoPointFieldData leafData = (LeafGeoPointFieldData) fieldData.load(leaf);
final MultiGeoPointValues values = leafData.getGeoPointValues();
return new DoubleDocValues(this) {
@Override

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.queries.function.FunctionValues;
import org.apache.lucene.queries.function.ValueSource;
import org.apache.lucene.queries.function.docvalues.DoubleDocValues;
import org.elasticsearch.index.fielddata.AtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.LeafGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.MultiGeoPointValues;
@ -44,7 +44,7 @@ final class GeoLongitudeValueSource extends ValueSource {
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
AtomicGeoPointFieldData leafData = (AtomicGeoPointFieldData) fieldData.load(leaf);
LeafGeoPointFieldData leafData = (LeafGeoPointFieldData) fieldData.load(leaf);
final MultiGeoPointValues values = leafData.getGeoPointValues();
return new DoubleDocValues(this) {
@Override

View File

@ -19,7 +19,7 @@
package org.elasticsearch.script.expression;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.elasticsearch.index.mapper.MapperService;
@ -56,7 +56,7 @@ public class ExpressionFieldScriptTests extends ESTestCase {
when(doubleValues.advanceExact(anyInt())).thenReturn(true);
when(doubleValues.nextValue()).thenReturn(2.718);
AtomicNumericFieldData atomicFieldData = mock(AtomicNumericFieldData.class);
LeafNumericFieldData atomicFieldData = mock(LeafNumericFieldData.class);
when(atomicFieldData.getDoubleValues()).thenReturn(doubleValues);
IndexNumericFieldData fieldData = mock(IndexNumericFieldData.class);

View File

@ -22,7 +22,7 @@ package org.elasticsearch.script.expression;
import java.io.IOException;
import java.text.ParseException;
import java.util.Collections;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.elasticsearch.index.mapper.MapperService;
@ -55,7 +55,7 @@ public class ExpressionNumberSortScriptTests extends ESTestCase {
when(doubleValues.advanceExact(anyInt())).thenReturn(true);
when(doubleValues.nextValue()).thenReturn(2.718);
AtomicNumericFieldData atomicFieldData = mock(AtomicNumericFieldData.class);
LeafNumericFieldData atomicFieldData = mock(LeafNumericFieldData.class);
when(atomicFieldData.getDoubleValues()).thenReturn(doubleValues);
IndexNumericFieldData fieldData = mock(IndexNumericFieldData.class);

View File

@ -22,7 +22,7 @@ package org.elasticsearch.script.expression;
import java.io.IOException;
import java.text.ParseException;
import java.util.Collections;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.elasticsearch.index.mapper.MapperService;
@ -55,7 +55,7 @@ public class ExpressionTermsSetQueryTests extends ESTestCase {
when(doubleValues.advanceExact(anyInt())).thenReturn(true);
when(doubleValues.nextValue()).thenReturn(2.718);
AtomicNumericFieldData atomicFieldData = mock(AtomicNumericFieldData.class);
LeafNumericFieldData atomicFieldData = mock(LeafNumericFieldData.class);
when(atomicFieldData.getDoubleValues()).thenReturn(doubleValues);
IndexNumericFieldData fieldData = mock(IndexNumericFieldData.class);

View File

@ -43,7 +43,7 @@ import org.elasticsearch.common.xcontent.XContentParser.Token;
import org.elasticsearch.common.xcontent.support.XContentMapValues;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
@ -510,12 +510,12 @@ public class ScaledFloatFieldMapper extends FieldMapper {
}
@Override
public AtomicNumericFieldData load(LeafReaderContext context) {
public LeafNumericFieldData load(LeafReaderContext context) {
return new ScaledFloatLeafFieldData(scaledFieldData.load(context), scalingFactor);
}
@Override
public AtomicNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
return new ScaledFloatLeafFieldData(scaledFieldData.loadDirect(context), scalingFactor);
}
@ -552,12 +552,12 @@ public class ScaledFloatFieldMapper extends FieldMapper {
}
private static class ScaledFloatLeafFieldData implements AtomicNumericFieldData {
private static class ScaledFloatLeafFieldData implements LeafNumericFieldData {
private final AtomicNumericFieldData scaledFieldData;
private final LeafNumericFieldData scaledFieldData;
private final double scalingFactorInverse;
ScaledFloatLeafFieldData(AtomicNumericFieldData scaledFieldData, double scalingFactor) {
ScaledFloatLeafFieldData(LeafNumericFieldData scaledFieldData, double scalingFactor) {
this.scaledFieldData = scaledFieldData;
this.scalingFactorInverse = 1d / scalingFactor;
}

View File

@ -34,7 +34,7 @@ import org.elasticsearch.Version;
import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.junit.Before;
@ -193,7 +193,7 @@ public class ScaledFloatFieldTypeTests extends FieldTypeTestCase {
IndexNumericFieldData fielddata = (IndexNumericFieldData) ft.fielddataBuilder("index")
.build(indexSettings, ft, null, null, null);
assertEquals(fielddata.getNumericType(), IndexNumericFieldData.NumericType.DOUBLE);
AtomicNumericFieldData leafFieldData = fielddata.load(reader.leaves().get(0));
LeafNumericFieldData leafFieldData = fielddata.load(reader.leaves().get(0));
SortedNumericDoubleValues values = leafFieldData.getDoubleValues();
assertTrue(values.advanceExact(0));
assertEquals(1, values.docValueCount());

View File

@ -31,8 +31,8 @@ import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
import org.elasticsearch.index.query.QueryRewriteContext;
@ -170,7 +170,7 @@ public class ExampleRescoreBuilder extends RescorerBuilder<ExampleRescoreBuilder
* them in (reader, field, docId) order because that is the
* order they are on disk.
*/
ScoreDoc[] sortedByDocId = new ScoreDoc[topDocs.scoreDocs.length];
ScoreDoc[] sortedByDocId = new ScoreDoc[topDocs.scoreDocs.length];
System.arraycopy(topDocs.scoreDocs, 0, sortedByDocId, 0, topDocs.scoreDocs.length);
Arrays.sort(sortedByDocId, (a, b) -> a.doc - b.doc); // Safe because doc ids >= 0
Iterator<LeafReaderContext> leaves = searcher.getIndexReader().leaves().iterator();
@ -183,11 +183,11 @@ public class ExampleRescoreBuilder extends RescorerBuilder<ExampleRescoreBuilder
leaf = leaves.next();
endDoc = leaf.docBase + leaf.reader().maxDoc();
} while (topDocs.scoreDocs[i].doc >= endDoc);
AtomicFieldData fd = context.factorField.load(leaf);
if (false == (fd instanceof AtomicNumericFieldData)) {
LeafFieldData fd = context.factorField.load(leaf);
if (false == (fd instanceof LeafNumericFieldData)) {
throw new IllegalArgumentException("[" + context.factorField.getFieldName() + "] is not a number");
}
data = ((AtomicNumericFieldData) fd).getDoubleValues();
data = ((LeafNumericFieldData) fd).getDoubleValues();
}
if (false == data.advanceExact(topDocs.scoreDocs[i].doc - leaf.docBase)) {
throw new IllegalArgumentException("document [" + topDocs.scoreDocs[i].doc

View File

@ -23,7 +23,7 @@ import com.carrotsearch.hppc.BitMixer;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.util.StringHelper;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -57,7 +57,7 @@ public class RandomScoreFunction extends ScoreFunction {
public LeafScoreFunction getLeafScoreFunction(LeafReaderContext ctx) {
final SortedBinaryDocValues values;
if (fieldData != null) {
AtomicFieldData leafData = fieldData.load(ctx);
LeafFieldData leafData = fieldData.load(ctx);
values = leafData.getBytesValues();
if (values == null) throw new NullPointerException("failed to get fielddata");
} else {

View File

@ -54,7 +54,7 @@ import java.io.IOException;
* Thread-safe utility class that allows to get per-segment values via the
* {@link #load(LeafReaderContext)} method.
*/
public interface IndexFieldData<FD extends AtomicFieldData> extends IndexComponent {
public interface IndexFieldData<FD extends LeafFieldData> extends IndexComponent {
/**
* The field name.
@ -251,7 +251,7 @@ public interface IndexFieldData<FD extends AtomicFieldData> extends IndexCompone
CircuitBreakerService breakerService, MapperService mapperService);
}
interface Global<FD extends AtomicFieldData> extends IndexFieldData<FD> {
interface Global<FD extends LeafFieldData> extends IndexFieldData<FD> {
IndexFieldData<FD> loadGlobal(DirectoryReader indexReader);

View File

@ -29,9 +29,9 @@ import org.elasticsearch.index.shard.ShardId;
*/
public interface IndexFieldDataCache {
<FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData) throws Exception;
<FD extends LeafFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData) throws Exception;
<FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader, IFD indexFieldData)
<FD extends LeafFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader, IFD indexFieldData)
throws Exception;
/**
@ -60,15 +60,15 @@ public interface IndexFieldDataCache {
class None implements IndexFieldDataCache {
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
public <FD extends LeafFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
throws Exception {
return indexFieldData.loadDirect(context);
}
@Override
@SuppressWarnings("unchecked")
public <FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
public <FD extends LeafFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
return (IFD) indexFieldData.localGlobalDirect(indexReader);
}

View File

@ -23,5 +23,5 @@ package org.elasticsearch.index.fielddata;
/**
* Specialization of {@link IndexFieldData} for geo points.
*/
public interface IndexGeoPointFieldData extends IndexFieldData<AtomicGeoPointFieldData> {
public interface IndexGeoPointFieldData extends IndexFieldData<LeafGeoPointFieldData> {
}

View File

@ -26,7 +26,7 @@ import org.elasticsearch.index.fielddata.plain.DocValuesIndexFieldData;
/**
* Specialization of {@link IndexFieldData} for histograms.
*/
public abstract class IndexHistogramFieldData extends DocValuesIndexFieldData implements IndexFieldData<AtomicHistogramFieldData> {
public abstract class IndexHistogramFieldData extends DocValuesIndexFieldData implements IndexFieldData<LeafHistogramFieldData> {
public IndexHistogramFieldData(Index index, String fieldName) {
super(index, fieldName);

View File

@ -19,7 +19,7 @@
package org.elasticsearch.index.fielddata;
public interface IndexNumericFieldData extends IndexFieldData<AtomicNumericFieldData> {
public interface IndexNumericFieldData extends IndexFieldData<LeafNumericFieldData> {
enum NumericType {
BOOLEAN(false),

View File

@ -27,7 +27,7 @@ import org.apache.lucene.index.OrdinalMap;
/**
* Specialization of {@link IndexFieldData} for data that is indexed with ordinals.
*/
public interface IndexOrdinalsFieldData extends IndexFieldData.Global<AtomicOrdinalsFieldData> {
public interface IndexOrdinalsFieldData extends IndexFieldData.Global<LeafOrdinalsFieldData> {
/**
* Load a global view of the ordinals for the given {@link IndexReader},

View File

@ -25,7 +25,7 @@ import org.elasticsearch.common.lease.Releasable;
/**
* The thread safe {@link org.apache.lucene.index.LeafReader} level cache of the data.
*/
public interface AtomicFieldData extends Accountable, Releasable {
public interface LeafFieldData extends Accountable, Releasable {
/**
* Returns field values for use in scripting.

View File

@ -20,9 +20,9 @@ package org.elasticsearch.index.fielddata;
/**
* {@link AtomicFieldData} specialization for geo points.
* {@link LeafFieldData} specialization for geo points.
*/
public interface AtomicGeoPointFieldData extends AtomicFieldData {
public interface LeafGeoPointFieldData extends LeafFieldData {
/**
* Return geo-point values.

View File

@ -22,9 +22,9 @@ package org.elasticsearch.index.fielddata;
import java.io.IOException;
/**
* {@link AtomicFieldData} specialization for histogram data.
* {@link LeafFieldData} specialization for histogram data.
*/
public interface AtomicHistogramFieldData extends AtomicFieldData {
public interface LeafHistogramFieldData extends LeafFieldData {
/**
* Return Histogram values.

View File

@ -22,9 +22,9 @@ package org.elasticsearch.index.fielddata;
import org.apache.lucene.index.SortedNumericDocValues;
/**
* Specialization of {@link AtomicFieldData} for numeric data.
* Specialization of {@link LeafFieldData} for numeric data.
*/
public interface AtomicNumericFieldData extends AtomicFieldData {
public interface LeafNumericFieldData extends LeafFieldData {
/**
* Get an integer view of the values of this segment. If the implementation

View File

@ -22,10 +22,10 @@ package org.elasticsearch.index.fielddata;
import org.apache.lucene.index.SortedSetDocValues;
/**
* Specialization of {@link AtomicFieldData} for data that is indexed with
* Specialization of {@link LeafFieldData} for data that is indexed with
* ordinals.
*/
public interface AtomicOrdinalsFieldData extends AtomicFieldData {
public interface LeafOrdinalsFieldData extends LeafFieldData {
/**
* Return the ordinals values for the current atomic reader.

View File

@ -452,7 +452,7 @@ public abstract class ScriptDocValues<T> extends AbstractList<T> {
if (in.advanceExact(docId)) {
resize(in.docValueCount());
for (int i = 0; i < count; i++) {
// We need to make a copy here, because BytesBinaryDVAtomicFieldData's SortedBinaryDocValues
// We need to make a copy here, because BytesBinaryDVLeafFieldData's SortedBinaryDocValues
// implementation reuses the returned BytesRef. Otherwise we would end up with the same BytesRef
// instance for all slots in the values array.
values[i].copyBytes(in.nextValue());

View File

@ -27,7 +27,7 @@ import org.apache.lucene.search.SortField;
import org.apache.lucene.util.BitSet;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
@ -67,7 +67,7 @@ public class LongValuesComparatorSource extends IndexFieldData.XFieldComparatorS
}
private SortedNumericDocValues loadDocValues(LeafReaderContext context) {
final AtomicNumericFieldData data = indexFieldData.load(context);
final LeafNumericFieldData data = indexFieldData.load(context);
SortedNumericDocValues values;
if (data instanceof SortedNumericDVIndexFieldData.NanoSecondFieldData) {
values = ((SortedNumericDVIndexFieldData.NanoSecondFieldData) data).getLongValuesAsNanos();
@ -76,7 +76,7 @@ public class LongValuesComparatorSource extends IndexFieldData.XFieldComparatorS
}
return converter != null ? converter.apply(values) : values;
}
private NumericDocValues getNumericDocValues(LeafReaderContext context, long missingValue) throws IOException {
final SortedNumericDocValues values = loadDocValues(context);
if (nested == null) {

View File

@ -29,10 +29,10 @@ import org.apache.lucene.util.packed.PackedInts;
import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.indices.breaker.CircuitBreakerService;
import java.io.IOException;
@ -56,7 +56,7 @@ public enum GlobalOrdinalsBuilder {
assert indexReader.leaves().size() > 1;
long startTimeNS = System.nanoTime();
final AtomicOrdinalsFieldData[] atomicFD = new AtomicOrdinalsFieldData[indexReader.leaves().size()];
final LeafOrdinalsFieldData[] atomicFD = new LeafOrdinalsFieldData[indexReader.leaves().size()];
final SortedSetDocValues[] subs = new SortedSetDocValues[indexReader.leaves().size()];
for (int i = 0; i < indexReader.leaves().size(); ++i) {
atomicFD[i] = indexFieldData.load(indexReader.leaves().get(i));
@ -83,10 +83,10 @@ public enum GlobalOrdinalsBuilder {
IndexOrdinalsFieldData indexFieldData) throws IOException {
assert indexReader.leaves().size() > 1;
final AtomicOrdinalsFieldData[] atomicFD = new AtomicOrdinalsFieldData[indexReader.leaves().size()];
final LeafOrdinalsFieldData[] atomicFD = new LeafOrdinalsFieldData[indexReader.leaves().size()];
final SortedSetDocValues[] subs = new SortedSetDocValues[indexReader.leaves().size()];
for (int i = 0; i < indexReader.leaves().size(); ++i) {
atomicFD[i] = new AbstractAtomicOrdinalsFieldData(AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION) {
atomicFD[i] = new AbstractLeafOrdinalsFieldData(AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION) {
@Override
public SortedSetDocValues getOrdinalsValues() {
return DocValues.emptySortedSet();
@ -110,7 +110,7 @@ public enum GlobalOrdinalsBuilder {
}
final OrdinalMap ordinalMap = OrdinalMap.build(null, subs, PackedInts.DEFAULT);
return new GlobalOrdinalsIndexFieldData(indexSettings, indexFieldData.getFieldName(),
atomicFD, ordinalMap, 0, AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION
atomicFD, ordinalMap, 0, AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION
);
}

View File

@ -29,11 +29,11 @@ import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.AbstractIndexComponent;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.search.DocValueFormat;
import org.elasticsearch.search.MultiValueMode;
import org.elasticsearch.search.sort.BucketedSort;
@ -60,12 +60,12 @@ public final class GlobalOrdinalsIndexFieldData extends AbstractIndexComponent i
private final long memorySizeInBytes;
private final OrdinalMap ordinalMap;
private final AtomicOrdinalsFieldData[] segmentAfd;
private final LeafOrdinalsFieldData[] segmentAfd;
private final Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction;
protected GlobalOrdinalsIndexFieldData(IndexSettings indexSettings,
String fieldName,
AtomicOrdinalsFieldData[] segmentAfd,
LeafOrdinalsFieldData[] segmentAfd,
OrdinalMap ordinalMap,
long memorySizeInBytes,
Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction) {
@ -82,7 +82,7 @@ public final class GlobalOrdinalsIndexFieldData extends AbstractIndexComponent i
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
throw new IllegalStateException("loadDirect(LeafReaderContext) should not be called in this context");
}
@ -127,7 +127,7 @@ public final class GlobalOrdinalsIndexFieldData extends AbstractIndexComponent i
}
@Override
public AtomicOrdinalsFieldData load(LeafReaderContext context) {
public LeafOrdinalsFieldData load(LeafReaderContext context) {
throw new IllegalStateException("load(LeafReaderContext) should not be called in this context");
}
@ -172,7 +172,7 @@ public final class GlobalOrdinalsIndexFieldData extends AbstractIndexComponent i
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}
@ -216,9 +216,9 @@ public final class GlobalOrdinalsIndexFieldData extends AbstractIndexComponent i
}
@Override
public AtomicOrdinalsFieldData load(LeafReaderContext context) {
public LeafOrdinalsFieldData load(LeafReaderContext context) {
assert source.getReaderCacheHelper().getKey() == context.parent.reader().getReaderCacheHelper().getKey();
return new AbstractAtomicOrdinalsFieldData(scriptFunction) {
return new AbstractLeafOrdinalsFieldData(scriptFunction) {
@Override
public SortedSetDocValues getOrdinalsValues() {
final SortedSetDocValues values = segmentAfd[context.ord].getOrdinalsValues();

View File

@ -26,14 +26,14 @@ import org.apache.lucene.util.BytesRef;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.index.AbstractIndexComponent;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.RamAccountingTermsEnum;
import java.io.IOException;
public abstract class AbstractIndexFieldData<FD extends AtomicFieldData> extends AbstractIndexComponent implements IndexFieldData<FD> {
public abstract class AbstractIndexFieldData<FD extends LeafFieldData> extends AbstractIndexComponent implements IndexFieldData<FD> {
private final String fieldName;
protected final IndexFieldDataCache cache;

View File

@ -28,7 +28,7 @@ import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.fielddata.ordinals.GlobalOrdinalsBuilder;
@ -37,7 +37,7 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService;
import java.io.IOException;
public abstract class AbstractIndexOrdinalsFieldData extends AbstractIndexFieldData<AtomicOrdinalsFieldData>
public abstract class AbstractIndexOrdinalsFieldData extends AbstractIndexFieldData<LeafOrdinalsFieldData>
implements IndexOrdinalsFieldData {
private final double minFrequency, maxFrequency;
@ -108,12 +108,12 @@ public abstract class AbstractIndexOrdinalsFieldData extends AbstractIndexFieldD
@Override
public IndexOrdinalsFieldData localGlobalDirect(DirectoryReader indexReader) throws Exception {
return GlobalOrdinalsBuilder.build(indexReader, this, indexSettings, breakerService, logger,
AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
}
@Override
protected AtomicOrdinalsFieldData empty(int maxDoc) {
return AbstractAtomicOrdinalsFieldData.empty();
protected LeafOrdinalsFieldData empty(int maxDoc) {
return AbstractLeafOrdinalsFieldData.empty();
}
protected TermsEnum filter(Terms terms, TermsEnum iterator, LeafReader reader) throws IOException {

View File

@ -28,7 +28,7 @@ import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.LeafGeoPointFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexGeoPointFieldData;
@ -65,17 +65,17 @@ public abstract class AbstractLatLonPointDVIndexFieldData extends DocValuesIndex
}
@Override
public AtomicGeoPointFieldData load(LeafReaderContext context) {
public LeafGeoPointFieldData load(LeafReaderContext context) {
LeafReader reader = context.reader();
FieldInfo info = reader.getFieldInfos().fieldInfo(fieldName);
if (info != null) {
checkCompatible(info);
}
return new LatLonPointDVAtomicFieldData(reader, fieldName);
return new LatLonPointDVLeafFieldData(reader, fieldName);
}
@Override
public AtomicGeoPointFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafGeoPointFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}

View File

@ -19,7 +19,7 @@
package org.elasticsearch.index.fielddata.plain;
import org.apache.lucene.util.Accountable;
import org.elasticsearch.index.fielddata.AtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.LeafGeoPointFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.MultiGeoPointValues;
import org.elasticsearch.index.fielddata.ScriptDocValues;
@ -28,7 +28,7 @@ import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
import java.util.Collection;
import java.util.Collections;
public abstract class AbstractAtomicGeoPointFieldData implements AtomicGeoPointFieldData {
public abstract class AbstractLeafGeoPointFieldData implements LeafGeoPointFieldData {
@Override
public final SortedBinaryDocValues getBytesValues() {
@ -40,14 +40,14 @@ public abstract class AbstractAtomicGeoPointFieldData implements AtomicGeoPointF
return new ScriptDocValues.GeoPoints(getGeoPointValues());
}
public static AtomicGeoPointFieldData empty(final int maxDoc) {
return new AbstractAtomicGeoPointFieldData() {
public static LeafGeoPointFieldData empty(final int maxDoc) {
return new AbstractLeafGeoPointFieldData() {
@Override
public long ramBytesUsed() {
return 0;
}
@Override
public Collection<Accountable> getChildResources() {
return Collections.emptyList();

View File

@ -22,7 +22,7 @@ package org.elasticsearch.index.fielddata.plain;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.util.Accountable;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -32,7 +32,7 @@ import java.util.Collections;
import java.util.function.Function;
public abstract class AbstractAtomicOrdinalsFieldData implements AtomicOrdinalsFieldData {
public abstract class AbstractLeafOrdinalsFieldData implements LeafOrdinalsFieldData {
public static final Function<SortedSetDocValues, ScriptDocValues<?>> DEFAULT_SCRIPT_FUNCTION =
((Function<SortedSetDocValues, SortedBinaryDocValues>) FieldData::toString)
@ -40,7 +40,7 @@ public abstract class AbstractAtomicOrdinalsFieldData implements AtomicOrdinalsF
private final Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction;
protected AbstractAtomicOrdinalsFieldData(Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction) {
protected AbstractLeafOrdinalsFieldData(Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction) {
this.scriptFunction = scriptFunction;
}
@ -54,14 +54,14 @@ public abstract class AbstractAtomicOrdinalsFieldData implements AtomicOrdinalsF
return FieldData.toString(getOrdinalsValues());
}
public static AtomicOrdinalsFieldData empty() {
return new AbstractAtomicOrdinalsFieldData(DEFAULT_SCRIPT_FUNCTION) {
public static LeafOrdinalsFieldData empty() {
return new AbstractLeafOrdinalsFieldData(DEFAULT_SCRIPT_FUNCTION) {
@Override
public long ramBytesUsed() {
return 0;
}
@Override
public Collection<Accountable> getChildResources() {
return Collections.emptyList();

View File

@ -32,19 +32,19 @@ import org.elasticsearch.search.MultiValueMode;
import org.elasticsearch.search.sort.BucketedSort;
import org.elasticsearch.search.sort.SortOrder;
public class BinaryDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<BinaryDVAtomicFieldData> {
public class BinaryDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<BinaryDVLeafFieldData> {
public BinaryDVIndexFieldData(Index index, String fieldName) {
super(index, fieldName);
}
@Override
public BinaryDVAtomicFieldData load(LeafReaderContext context) {
return new BinaryDVAtomicFieldData(context.reader(), fieldName);
public BinaryDVLeafFieldData load(LeafReaderContext context) {
return new BinaryDVLeafFieldData(context.reader(), fieldName);
}
@Override
public BinaryDVAtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public BinaryDVLeafFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}

View File

@ -23,7 +23,7 @@ import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.util.Accountable;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.ScriptDocValues.Strings;
@ -33,13 +33,13 @@ import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
/** {@link AtomicFieldData} impl on top of Lucene's binary doc values. */
public class BinaryDVAtomicFieldData implements AtomicFieldData {
/** {@link LeafFieldData} impl on top of Lucene's binary doc values. */
public class BinaryDVLeafFieldData implements LeafFieldData {
private final LeafReader reader;
private final String field;
public BinaryDVAtomicFieldData(LeafReader reader, String field) {
public BinaryDVLeafFieldData(LeafReader reader, String field) {
this.reader = reader;
this.field = field;
}
@ -68,7 +68,7 @@ public class BinaryDVAtomicFieldData implements AtomicFieldData {
public long ramBytesUsed() {
return 0; // unknown
}
@Override
public Collection<Accountable> getChildResources() {
return Collections.emptyList();

View File

@ -39,7 +39,7 @@ import org.elasticsearch.search.sort.SortOrder;
import java.io.IOException;
public class BytesBinaryDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<BytesBinaryDVAtomicFieldData> {
public class BytesBinaryDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<BytesBinaryDVLeafFieldData> {
public BytesBinaryDVIndexFieldData(Index index, String fieldName) {
super(index, fieldName);
@ -57,16 +57,16 @@ public class BytesBinaryDVIndexFieldData extends DocValuesIndexFieldData impleme
}
@Override
public BytesBinaryDVAtomicFieldData load(LeafReaderContext context) {
public BytesBinaryDVLeafFieldData load(LeafReaderContext context) {
try {
return new BytesBinaryDVAtomicFieldData(DocValues.getBinary(context.reader(), fieldName));
return new BytesBinaryDVLeafFieldData(DocValues.getBinary(context.reader(), fieldName));
} catch (IOException e) {
throw new IllegalStateException("Cannot load doc values", e);
}
}
@Override
public BytesBinaryDVAtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public BytesBinaryDVLeafFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}

View File

@ -23,7 +23,7 @@ import org.apache.lucene.index.BinaryDocValues;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -31,11 +31,11 @@ import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
final class BytesBinaryDVAtomicFieldData implements AtomicFieldData {
final class BytesBinaryDVLeafFieldData implements LeafFieldData {
private final BinaryDocValues values;
BytesBinaryDVAtomicFieldData(BinaryDocValues values) {
BytesBinaryDVLeafFieldData(BinaryDocValues values) {
super();
this.values = values;
}

View File

@ -31,7 +31,7 @@ import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AbstractSortedDocValues;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
@ -69,11 +69,11 @@ public class ConstantIndexFieldData extends AbstractIndexOrdinalsFieldData {
}
private static class ConstantAtomicFieldData extends AbstractAtomicOrdinalsFieldData {
private static class ConstantLeafFieldData extends AbstractLeafOrdinalsFieldData {
private final String value;
ConstantAtomicFieldData(String value) {
ConstantLeafFieldData(String value) {
super(DEFAULT_SCRIPT_FUNCTION);
this.value = value;
}
@ -134,14 +134,14 @@ public class ConstantIndexFieldData extends AbstractIndexOrdinalsFieldData {
}
private final ConstantAtomicFieldData atomicFieldData;
private final ConstantLeafFieldData atomicFieldData;
private ConstantIndexFieldData(IndexSettings indexSettings, String name, String value) {
super(indexSettings, name, null, null,
TextFieldMapper.Defaults.FIELDDATA_MIN_FREQUENCY,
TextFieldMapper.Defaults.FIELDDATA_MAX_FREQUENCY,
TextFieldMapper.Defaults.FIELDDATA_MIN_SEGMENT_SIZE);
atomicFieldData = new ConstantAtomicFieldData(value);
atomicFieldData = new ConstantLeafFieldData(value);
}
@Override
@ -149,12 +149,12 @@ public class ConstantIndexFieldData extends AbstractIndexOrdinalsFieldData {
}
@Override
public final AtomicOrdinalsFieldData load(LeafReaderContext context) {
public final LeafOrdinalsFieldData load(LeafReaderContext context) {
return atomicFieldData;
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context)
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context)
throws Exception {
return atomicFieldData;
}

View File

@ -71,7 +71,7 @@ public abstract class DocValuesIndexFieldData {
private static final Set<String> BINARY_INDEX_FIELD_NAMES = unmodifiableSet(newHashSet(IdFieldMapper.NAME));
private NumericType numericType;
private Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction = AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION;
private Function<SortedSetDocValues, ScriptDocValues<?>> scriptFunction = AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION;
private RangeType rangeType;
public Builder numericType(NumericType type) {

View File

@ -30,11 +30,11 @@ import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
final class LatLonPointDVAtomicFieldData extends AbstractAtomicGeoPointFieldData {
final class LatLonPointDVLeafFieldData extends AbstractLeafGeoPointFieldData {
private final LeafReader reader;
private final String fieldName;
LatLonPointDVAtomicFieldData(LeafReader reader, String fieldName) {
LatLonPointDVLeafFieldData(LeafReader reader, String fieldName) {
super();
this.reader = reader;
this.fieldName = fieldName;

View File

@ -21,7 +21,7 @@ package org.elasticsearch.index.fielddata.plain;
import org.apache.lucene.index.SortedNumericDocValues;
import org.apache.lucene.util.Accountable;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -32,13 +32,13 @@ import java.util.Collections;
/**
* Specialization of {@link AtomicNumericFieldData} for floating-point numerics.
* Specialization of {@link LeafNumericFieldData} for floating-point numerics.
*/
abstract class AtomicDoubleFieldData implements AtomicNumericFieldData {
abstract class LeafDoubleFieldData implements LeafNumericFieldData {
private final long ramBytesUsed;
AtomicDoubleFieldData(long ramBytesUsed) {
LeafDoubleFieldData(long ramBytesUsed) {
this.ramBytesUsed = ramBytesUsed;
}
@ -62,8 +62,8 @@ abstract class AtomicDoubleFieldData implements AtomicNumericFieldData {
return FieldData.castToLong(getDoubleValues());
}
public static AtomicNumericFieldData empty(final int maxDoc) {
return new AtomicDoubleFieldData(0) {
public static LeafNumericFieldData empty(final int maxDoc) {
return new LeafDoubleFieldData(0) {
@Override
public SortedNumericDoubleValues getDoubleValues() {

View File

@ -19,7 +19,7 @@
package org.elasticsearch.index.fielddata.plain;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData.NumericType;
import org.elasticsearch.index.fielddata.ScriptDocValues;
@ -27,9 +27,9 @@ import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
import org.elasticsearch.index.fielddata.SortedNumericDoubleValues;
/**
* Specialization of {@link AtomicNumericFieldData} for integers.
* Specialization of {@link LeafNumericFieldData} for integers.
*/
abstract class AtomicLongFieldData implements AtomicNumericFieldData {
abstract class LeafLongFieldData implements LeafNumericFieldData {
private final long ramBytesUsed;
/**
@ -37,7 +37,7 @@ abstract class AtomicLongFieldData implements AtomicNumericFieldData {
*/
private final NumericType numericType;
AtomicLongFieldData(long ramBytesUsed, NumericType numericType) {
LeafLongFieldData(long ramBytesUsed, NumericType numericType) {
this.ramBytesUsed = ramBytesUsed;
this.numericType = numericType;
}

View File

@ -35,7 +35,7 @@ import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.breaker.CircuitBreaker;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
@ -96,15 +96,15 @@ public class PagedBytesIndexFieldData extends AbstractIndexOrdinalsFieldData {
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
LeafReader reader = context.reader();
AtomicOrdinalsFieldData data = null;
LeafOrdinalsFieldData data = null;
PagedBytesEstimator estimator =
new PagedBytesEstimator(context, breakerService.getBreaker(CircuitBreaker.FIELDDATA), getFieldName());
Terms terms = reader.terms(getFieldName());
if (terms == null) {
data = AbstractAtomicOrdinalsFieldData.empty();
data = AbstractLeafOrdinalsFieldData.empty();
estimator.afterLoad(null, data.ramBytesUsed());
return data;
}
@ -135,7 +135,7 @@ public class PagedBytesIndexFieldData extends AbstractIndexOrdinalsFieldData {
PagedBytes.Reader bytesReader = bytes.freeze(true);
final Ordinals ordinals = builder.build();
data = new PagedBytesAtomicFieldData(bytesReader, termOrdToBytesOffset.build(), ordinals);
data = new PagedBytesLeafFieldData(bytesReader, termOrdToBytesOffset.build(), ordinals);
success = true;
return data;
} finally {

View File

@ -31,13 +31,13 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class PagedBytesAtomicFieldData extends AbstractAtomicOrdinalsFieldData {
public class PagedBytesLeafFieldData extends AbstractLeafOrdinalsFieldData {
private final PagedBytes.Reader bytes;
private final PackedLongValues termOrdToBytesOffset;
protected final Ordinals ordinals;
public PagedBytesAtomicFieldData(PagedBytes.Reader bytes, PackedLongValues termOrdToBytesOffset, Ordinals ordinals) {
public PagedBytesLeafFieldData(PagedBytes.Reader bytes, PackedLongValues termOrdToBytesOffset, Ordinals ordinals) {
super(DEFAULT_SCRIPT_FUNCTION);
this.bytes = bytes;
this.termOrdToBytesOffset = termOrdToBytesOffset;

View File

@ -36,7 +36,7 @@ import org.elasticsearch.common.time.DateUtils;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.fielddata.AbstractSortedNumericDocValues;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
@ -167,12 +167,12 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
}
@Override
public AtomicNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}
@Override
public AtomicNumericFieldData load(LeafReaderContext context) {
public LeafNumericFieldData load(LeafReaderContext context) {
final LeafReader reader = context.reader();
final String field = fieldName;
@ -194,7 +194,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
* A small helper class that can be configured to load nanosecond field data either in nanosecond resolution retaining the original
* values or in millisecond resolution converting the nanosecond values to milliseconds
*/
public final class NanoSecondFieldData extends AtomicLongFieldData {
public final class NanoSecondFieldData extends LeafLongFieldData {
private final LeafReader reader;
private final String fieldName;
@ -230,7 +230,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
* {@link DocValues#unwrapSingleton(SortedNumericDocValues)} will return
* the underlying single-valued NumericDocValues representation.
*/
static final class SortedNumericLongFieldData extends AtomicLongFieldData {
static final class SortedNumericLongFieldData extends LeafLongFieldData {
final LeafReader reader;
final String field;
@ -268,7 +268,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
* {@link FieldData#unwrapSingleton(SortedNumericDoubleValues)} will return
* the underlying single-valued NumericDoubleValues representation.
*/
static final class SortedNumericHalfFloatFieldData extends AtomicDoubleFieldData {
static final class SortedNumericHalfFloatFieldData extends LeafDoubleFieldData {
final LeafReader reader;
final String field;
@ -360,7 +360,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
* {@link FieldData#unwrapSingleton(SortedNumericDoubleValues)} will return
* the underlying single-valued NumericDoubleValues representation.
*/
static final class SortedNumericFloatFieldData extends AtomicDoubleFieldData {
static final class SortedNumericFloatFieldData extends LeafDoubleFieldData {
final LeafReader reader;
final String field;
@ -452,7 +452,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple
* {@link FieldData#unwrapSingleton(SortedNumericDoubleValues)} will return
* the underlying single-valued NumericDoubleValues representation.
*/
static final class SortedNumericDoubleFieldData extends AtomicDoubleFieldData {
static final class SortedNumericDoubleFieldData extends LeafDoubleFieldData {
final LeafReader reader;
final String field;

View File

@ -23,7 +23,7 @@ import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.util.Accountable;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import java.io.IOException;
@ -32,14 +32,14 @@ import java.util.Collections;
import java.util.function.Function;
/**
* An {@link AtomicFieldData} implementation that uses Lucene {@link SortedSetDocValues}.
* An {@link LeafFieldData} implementation that uses Lucene {@link SortedSetDocValues}.
*/
public final class SortedSetDVBytesAtomicFieldData extends AbstractAtomicOrdinalsFieldData {
public final class SortedSetDVBytesLeafFieldData extends AbstractLeafOrdinalsFieldData {
private final LeafReader reader;
private final String field;
SortedSetDVBytesAtomicFieldData(LeafReader reader, String field, Function<SortedSetDocValues,
SortedSetDVBytesLeafFieldData(LeafReader reader, String field, Function<SortedSetDocValues,
ScriptDocValues<?>> scriptFunction) {
super(scriptFunction);
this.reader = reader;
@ -63,7 +63,7 @@ public final class SortedSetDVBytesAtomicFieldData extends AbstractAtomicOrdinal
public long ramBytesUsed() {
return 0; // unknown
}
@Override
public Collection<Accountable> getChildResources() {
return Collections.emptyList();

View File

@ -32,7 +32,7 @@ import org.elasticsearch.ElasticsearchException;
import org.elasticsearch.common.Nullable;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
@ -92,12 +92,12 @@ public class SortedSetDVOrdinalsIndexFieldData extends DocValuesIndexFieldData i
}
@Override
public AtomicOrdinalsFieldData load(LeafReaderContext context) {
return new SortedSetDVBytesAtomicFieldData(context.reader(), fieldName, scriptFunction);
public LeafOrdinalsFieldData load(LeafReaderContext context) {
return new SortedSetDVBytesLeafFieldData(context.reader(), fieldName, scriptFunction);
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}

View File

@ -35,7 +35,7 @@ import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
@ -178,7 +178,7 @@ public class IdFieldMapper extends MetadataFieldMapper {
deprecationLogger.deprecatedAndMaybeLog("id_field_data", ID_FIELD_DATA_DEPRECATION_MESSAGE);
final IndexFieldData<?> fieldData = fieldDataBuilder.build(indexSettings, fieldType, cache,
breakerService, mapperService);
return new IndexFieldData<AtomicFieldData>() {
return new IndexFieldData<LeafFieldData>() {
@Override
public Index index() {
@ -191,12 +191,12 @@ public class IdFieldMapper extends MetadataFieldMapper {
}
@Override
public AtomicFieldData load(LeafReaderContext context) {
public LeafFieldData load(LeafReaderContext context) {
return wrap(fieldData.load(context));
}
@Override
public AtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafFieldData loadDirect(LeafReaderContext context) throws Exception {
return wrap(fieldData.loadDirect(context));
}
@ -224,8 +224,8 @@ public class IdFieldMapper extends MetadataFieldMapper {
}
}
private static AtomicFieldData wrap(AtomicFieldData in) {
return new AtomicFieldData() {
private static LeafFieldData wrap(LeafFieldData in) {
return new LeafFieldData() {
@Override
public void close() {

View File

@ -40,7 +40,7 @@ import org.elasticsearch.common.settings.Setting.Property;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.shard.ShardId;
@ -130,8 +130,9 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
}
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(final LeafReaderContext context,
final IFD indexFieldData) throws Exception {
@SuppressWarnings("unchecked")
public <FD extends LeafFieldData, IFD extends IndexFieldData<FD>> FD load(final LeafReaderContext context,
final IFD indexFieldData) throws Exception {
final ShardId shardId = ShardUtils.extractShardId(context.reader());
final IndexReader.CacheHelper cacheHelper = context.reader().getCoreCacheHelper();
if (cacheHelper == null) {
@ -142,7 +143,7 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
final Accountable accountable = cache.computeIfAbsent(key, k -> {
cacheHelper.addClosedListener(IndexFieldCache.this);
Collections.addAll(k.listeners, this.listeners);
final AtomicFieldData fieldData = indexFieldData.loadDirect(context);
final LeafFieldData fieldData = indexFieldData.loadDirect(context);
for (Listener listener : k.listeners) {
try {
listener.onCache(shardId, fieldName, fieldData);
@ -157,8 +158,9 @@ public class IndicesFieldDataCache implements RemovalListener<IndicesFieldDataCa
}
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(final DirectoryReader indexReader,
final IFD indexFieldData) throws Exception {
@SuppressWarnings("unchecked")
public <FD extends LeafFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(final DirectoryReader indexReader,
final IFD indexFieldData) throws Exception {
final ShardId shardId = ShardUtils.extractShardId(indexReader);
final IndexReader.CacheHelper cacheHelper = indexReader.getReaderCacheHelper();
if (cacheHelper == null) {

View File

@ -32,7 +32,7 @@ import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.ObjectParser;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.mapper.DateFieldMapper;
import org.elasticsearch.index.mapper.MappedFieldType;
@ -293,7 +293,7 @@ public class DateHistogramAggregationBuilder extends ValuesSourceAggregationBuil
}
/**
* Parse the string specification of an offset.
* Parse the string specification of an offset.
*/
public static long parseStringOffset(String offset) {
if (offset.charAt(0) == '-') {
@ -464,7 +464,7 @@ public class DateHistogramAggregationBuilder extends ValuesSourceAggregationBuil
Instant instant = null;
final IndexNumericFieldData fieldData = context.getForField(ft);
for (LeafReaderContext ctx : reader.leaves()) {
AtomicNumericFieldData leafFD = fieldData.load(ctx);
LeafNumericFieldData leafFD = fieldData.load(ctx);
SortedNumericDocValues values = leafFD.getLongValues();
if (values.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
instant = Instant.ofEpochMilli(values.nextValue());

View File

@ -31,7 +31,7 @@ import org.apache.lucene.util.BytesRef;
import org.elasticsearch.common.lucene.ScorerAware;
import org.elasticsearch.common.util.CollectionUtils;
import org.elasticsearch.index.fielddata.AbstractSortingNumericDocValues;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.DocValueBits;
import org.elasticsearch.index.fielddata.HistogramValues;
import org.elasticsearch.index.fielddata.IndexFieldData;
@ -170,20 +170,20 @@ public abstract class ValuesSource {
@Override
public SortedBinaryDocValues bytesValues(LeafReaderContext context) {
final AtomicOrdinalsFieldData atomicFieldData = indexFieldData.load(context);
final LeafOrdinalsFieldData atomicFieldData = indexFieldData.load(context);
return atomicFieldData.getBytesValues();
}
@Override
public SortedSetDocValues ordinalsValues(LeafReaderContext context) {
final AtomicOrdinalsFieldData atomicFieldData = indexFieldData.load(context);
final LeafOrdinalsFieldData atomicFieldData = indexFieldData.load(context);
return atomicFieldData.getOrdinalsValues();
}
@Override
public SortedSetDocValues globalOrdinalsValues(LeafReaderContext context) {
final IndexOrdinalsFieldData global = indexFieldData.loadGlobal((DirectoryReader)context.parent.reader());
final AtomicOrdinalsFieldData atomicFieldData = global.load(context);
final LeafOrdinalsFieldData atomicFieldData = global.load(context);
return atomicFieldData.getOrdinalsValues();
}
@ -565,7 +565,7 @@ public abstract class ValuesSource {
}
}
}
public abstract static class Histogram extends ValuesSource {
public abstract HistogramValues getHistogramValues(LeafReaderContext context) throws IOException;

View File

@ -24,8 +24,8 @@ import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.SortedNumericDocValues;
import org.elasticsearch.common.document.DocumentField;
import org.elasticsearch.common.logging.DeprecationLogger;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -114,7 +114,7 @@ public final class FetchDocValuesPhase implements FetchSubPhase {
format = fieldType.docValueFormat(formatDesc, null);
}
LeafReaderContext subReaderContext = null;
AtomicFieldData data = null;
LeafFieldData data = null;
SortedBinaryDocValues binaryValues = null; // binary / string / ip fields
SortedNumericDocValues longValues = null; // int / date fields
SortedNumericDoubleValues doubleValues = null; // floating-point fields
@ -127,14 +127,14 @@ public final class FetchDocValuesPhase implements FetchSubPhase {
if (indexFieldData instanceof IndexNumericFieldData) {
NumericType numericType = ((IndexNumericFieldData) indexFieldData).getNumericType();
if (numericType.isFloatingPoint()) {
doubleValues = ((AtomicNumericFieldData) data).getDoubleValues();
doubleValues = ((LeafNumericFieldData) data).getDoubleValues();
} else {
// by default nanoseconds are cut to milliseconds within aggregations
// however for doc value fields we need the original nanosecond longs
if (isNanosecond) {
longValues = ((SortedNumericDVIndexFieldData.NanoSecondFieldData) data).getLongValuesAsNanos();
} else {
longValues = ((AtomicNumericFieldData) data).getLongValues();
longValues = ((LeafNumericFieldData) data).getLongValues();
}
}
} else {

View File

@ -76,7 +76,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
SortedBinaryDocValues values = fieldData.getBytesValues();
for (int i = 0; i < readerContext.reader().maxDoc(); ++i) {
assertTrue(values.advanceExact(i));
@ -90,7 +90,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
SortedBinaryDocValues bytesValues = fieldData.getBytesValues();
@ -160,7 +160,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
SortedBinaryDocValues bytesValues = fieldData.getBytesValues();
@ -181,7 +181,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
SortedBinaryDocValues bytesValues = fieldData.getBytesValues();
@ -215,7 +215,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
SortedBinaryDocValues bytesValues = fieldData.getBytesValues();
@ -231,7 +231,7 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
// Some impls (FST) return size 0 and some (PagedBytes) do take size in the case no actual data is loaded
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(0L));

View File

@ -175,9 +175,9 @@ public abstract class AbstractFieldDataTestCase extends ESSingleNodeTestCase {
IndexFieldData<?> fieldData = getForField("non_existing_field");
int max = randomInt(7);
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData previous = null;
LeafFieldData previous = null;
for (int i = 0; i < max; i++) {
AtomicFieldData current = fieldData.load(readerContext);
LeafFieldData current = fieldData.load(readerContext);
assertThat(current.ramBytesUsed(), equalTo(0L));
if (previous != null) {
assertThat(current, not(sameInstance(previous)));

View File

@ -467,7 +467,7 @@ public abstract class AbstractStringFieldDataTestCase extends AbstractFieldDataI
// First segment
assertThat(globalOrdinals, instanceOf(GlobalOrdinalsIndexFieldData.Consumer.class));
LeafReaderContext leaf = topLevelReader.leaves().get(0);
AtomicOrdinalsFieldData afd = globalOrdinals.load(leaf);
LeafOrdinalsFieldData afd = globalOrdinals.load(leaf);
SortedSetDocValues values = afd.getOrdinalsValues();
assertTrue(values.advanceExact(0));
long ord = values.nextOrd();
@ -553,7 +553,7 @@ public abstract class AbstractStringFieldDataTestCase extends AbstractFieldDataI
IndexOrdinalsFieldData ifd = getForField("value");
for (LeafReaderContext atomicReaderContext : atomicReaderContexts) {
AtomicOrdinalsFieldData afd = ifd.load(atomicReaderContext);
LeafOrdinalsFieldData afd = ifd.load(atomicReaderContext);
TermsEnum termsEnum = afd.getOrdinalsValues().termsEnum();
int size = 0;

View File

@ -100,7 +100,7 @@ public class BinaryDVFieldDataTests extends AbstractFieldDataTestCase {
bytesList2.sort(null);
// Test SortedBinaryDocValues's decoding:
AtomicFieldData fieldData = indexFieldData.load(reader);
LeafFieldData fieldData = indexFieldData.load(reader);
SortedBinaryDocValues bytesValues = fieldData.getBytesValues();
assertTrue(bytesValues.advanceExact(0));

View File

@ -35,7 +35,7 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.common.lucene.index.ElasticsearchDirectoryReader;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData;
import org.elasticsearch.index.fielddata.plain.SortedSetDVOrdinalsIndexFieldData;
import org.elasticsearch.index.mapper.TextFieldMapper;
@ -89,7 +89,7 @@ public class FieldDataCacheTests extends ESTestCase {
private SortedSetDVOrdinalsIndexFieldData createSortedDV(String fieldName, IndexFieldDataCache indexFieldDataCache) {
return new SortedSetDVOrdinalsIndexFieldData(createIndexSettings(), indexFieldDataCache, fieldName, new NoneCircuitBreakerService(),
AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
}
private PagedBytesIndexFieldData createPagedBytes(String fieldName, IndexFieldDataCache indexFieldDataCache) {
@ -115,14 +115,14 @@ public class FieldDataCacheTests extends ESTestCase {
private int cachedGlobally = 0;
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
public <FD extends LeafFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
throws Exception {
return indexFieldData.loadDirect(context);
}
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
public <FD extends LeafFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
cachedGlobally++;
return (IFD) indexFieldData.localGlobalDirect(indexReader);
}

View File

@ -70,7 +70,7 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase {
.build(builderCtx).fieldType();
IndexOrdinalsFieldData fieldData = shardContext.getForField(ft);
for (LeafReaderContext context : contexts) {
AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
LeafOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
SortedSetDocValues bytesValues = loadDirect.getOrdinalsValues();
assertThat(2L, equalTo(bytesValues.getValueCount()));
assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10"));
@ -85,7 +85,7 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase {
.build(builderCtx).fieldType();
IndexOrdinalsFieldData fieldData = shardContext.getForField(ft);
for (LeafReaderContext context : contexts) {
AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
LeafOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
SortedSetDocValues bytesValues = loadDirect.getOrdinalsValues();
assertThat(1L, equalTo(bytesValues.getValueCount()));
assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("5"));
@ -100,7 +100,7 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase {
.build(builderCtx).fieldType();
IndexOrdinalsFieldData fieldData = shardContext.getForField(ft);
for (LeafReaderContext context : contexts) {
AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
LeafOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
SortedSetDocValues bytesValues = loadDirect.getOrdinalsValues();
assertThat(2L, equalTo(bytesValues.getValueCount()));
assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10"));
@ -116,7 +116,7 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase {
.build(builderCtx).fieldType();
IndexOrdinalsFieldData fieldData = shardContext.getForField(ft);
for (LeafReaderContext context : contexts) {
AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
LeafOrdinalsFieldData loadDirect = fieldData.loadDirect(context);
SortedSetDocValues bytesValues = loadDirect.getOrdinalsValues();
assertThat(2L, equalTo(bytesValues.getValueCount()));
assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10"));

View File

@ -23,7 +23,7 @@ import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicGeoPointFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafGeoPointFieldData;
import java.util.List;
@ -157,10 +157,10 @@ public class GeoFieldDataTests extends AbstractGeoFieldDataTestCase {
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues();
MultiGeoPointValues fieldValues = ((AbstractLeafGeoPointFieldData)fieldData).getGeoPointValues();
assertValues(fieldValues, 0);
assertValues(fieldValues, 1);
assertValues(fieldValues, 2);
@ -173,10 +173,10 @@ public class GeoFieldDataTests extends AbstractGeoFieldDataTestCase {
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues();
MultiGeoPointValues fieldValues = ((AbstractLeafGeoPointFieldData)fieldData).getGeoPointValues();
assertValues(fieldValues, 0);
assertMissing(fieldValues, 1);
assertValues(fieldValues, 2);
@ -189,10 +189,10 @@ public class GeoFieldDataTests extends AbstractGeoFieldDataTestCase {
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues();
MultiGeoPointValues fieldValues = ((AbstractLeafGeoPointFieldData)fieldData).getGeoPointValues();
assertValues(fieldValues, 0);
assertValues(fieldValues, 1);
assertValues(fieldValues, 2);
@ -205,10 +205,10 @@ public class GeoFieldDataTests extends AbstractGeoFieldDataTestCase {
IndexFieldData<?> indexFieldData = getForField("value");
List<LeafReaderContext> readerContexts = refreshReader();
for (LeafReaderContext readerContext : readerContexts) {
AtomicFieldData fieldData = indexFieldData.load(readerContext);
LeafFieldData fieldData = indexFieldData.load(readerContext);
assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed()));
MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues();
MultiGeoPointValues fieldValues = ((AbstractLeafGeoPointFieldData)fieldData).getGeoPointValues();
assertValues(fieldValues, 0);
assertMissing(fieldValues, 1);

View File

@ -132,8 +132,8 @@ public class IndexFieldDataServiceTests extends ESSingleNodeTestCase {
IndexFieldData<?> ifd1 = ifdService.getForField(mapper1);
IndexFieldData<?> ifd2 = ifdService.getForField(mapper2);
LeafReaderContext leafReaderContext = reader.getContext().leaves().get(0);
AtomicFieldData loadField1 = ifd1.load(leafReaderContext);
AtomicFieldData loadField2 = ifd2.load(leafReaderContext);
LeafFieldData loadField1 = ifd1.load(leafReaderContext);
LeafFieldData loadField2 = ifd2.load(leafReaderContext);
assertEquals(2, onCacheCalled.get());
assertEquals(0, onRemovalCalled.get());
@ -201,7 +201,7 @@ public class IndexFieldDataServiceTests extends ESSingleNodeTestCase {
});
IndexFieldData<?> ifd = ifdService.getForField(mapper1);
LeafReaderContext leafReaderContext = reader.getContext().leaves().get(0);
AtomicFieldData load = ifd.load(leafReaderContext);
LeafFieldData load = ifd.load(leafReaderContext);
assertEquals(1, onCacheCalled.get());
assertEquals(0, onRemovalCalled.get());
reader.close();

View File

@ -35,8 +35,8 @@ import org.elasticsearch.search.sort.SortOrder;
* eg. BytesRefFieldComparatorSource makes decisions based on whether the field data implements WithOrdinals. */
public class NoOrdinalsStringFieldDataTests extends PagedBytesStringFieldDataTests {
public static IndexFieldData<AtomicFieldData> hideOrdinals(final IndexFieldData<?> in) {
return new IndexFieldData<AtomicFieldData>() {
public static IndexFieldData<LeafFieldData> hideOrdinals(final IndexFieldData<?> in) {
return new IndexFieldData<LeafFieldData>() {
@Override
public Index index() {
@ -49,12 +49,12 @@ public class NoOrdinalsStringFieldDataTests extends PagedBytesStringFieldDataTes
}
@Override
public AtomicFieldData load(LeafReaderContext context) {
public LeafFieldData load(LeafReaderContext context) {
return in.load(context);
}
@Override
public AtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafFieldData loadDirect(LeafReaderContext context) throws Exception {
return in.loadDirect(context);
}
@ -80,7 +80,7 @@ public class NoOrdinalsStringFieldDataTests extends PagedBytesStringFieldDataTes
@SuppressWarnings("unchecked")
@Override
public IndexFieldData<AtomicFieldData> getForField(String fieldName) {
public IndexFieldData<LeafFieldData> getForField(String fieldName) {
return hideOrdinals(super.getForField(fieldName));
}

View File

@ -41,7 +41,7 @@ import org.elasticsearch.common.time.DateMathParser;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.core.internal.io.IOUtils;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
import org.elasticsearch.index.fielddata.plain.SortedNumericDVIndexFieldData;
import org.elasticsearch.index.mapper.DateFieldMapper.DateFieldType;
@ -304,7 +304,7 @@ public class DateFieldTypeTests extends FieldTypeTestCase {
// Read index and check the doc values
DirectoryReader reader = DirectoryReader.open(w);
assertTrue(reader.leaves().size() > 0);
AtomicNumericFieldData a = fieldData.load(reader.leaves().get(0).reader().getContext());
LeafNumericFieldData a = fieldData.load(reader.leaves().get(0).reader().getContext());
SortedNumericDocValues docValues = a.getLongValues();
assertEquals(0, docValues.nextDoc());
assertEquals(1, docValues.nextDoc());

View File

@ -30,7 +30,7 @@ import org.elasticsearch.common.compress.CompressedXContent;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.IndexService;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.mapper.MapperService.MergeReason;
@ -70,7 +70,7 @@ public class TypeFieldMapperTests extends ESSingleNodeTestCase {
MappedFieldType ft = mapperService.fieldType(TypeFieldMapper.NAME);
IndexOrdinalsFieldData fd = (IndexOrdinalsFieldData) ft.fielddataBuilder("test").build(mapperService.getIndexSettings(),
ft, new IndexFieldDataCache.None(), new NoneCircuitBreakerService(), mapperService);
AtomicOrdinalsFieldData afd = fd.load(r.leaves().get(0));
LeafOrdinalsFieldData afd = fd.load(r.leaves().get(0));
SortedSetDocValues values = afd.getOrdinalsValues();
assertTrue(values.advanceExact(0));
assertEquals(0, values.nextOrd());

View File

@ -29,7 +29,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.index.mapper.ContentPath;
import org.elasticsearch.index.mapper.IndexFieldMapper;
import org.elasticsearch.index.mapper.MappedFieldType;
@ -123,7 +123,7 @@ public class QueryShardContextTests extends ESTestCase {
IndexFieldData<?> forField = context.getForField(mapper.fieldType());
String expected = clusterAlias == null ? context.getIndexSettings().getIndexMetaData().getIndex().getName()
: clusterAlias + ":" + context.getIndexSettings().getIndex().getName();
assertEquals(expected, ((AbstractAtomicOrdinalsFieldData)forField.load(null)).getOrdinalsValues().lookupOrd(0).utf8ToString());
assertEquals(expected, ((AbstractLeafOrdinalsFieldData)forField.load(null)).getOrdinalsValues().lookupOrd(0).utf8ToString());
}
public void testGetFullyQualifiedIndex() {

View File

@ -54,8 +54,8 @@ import org.elasticsearch.common.lucene.search.function.ScoreFunction;
import org.elasticsearch.common.lucene.search.function.WeightFactorFunction;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.index.Index;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.AtomicNumericFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.LeafNumericFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.IndexNumericFieldData;
@ -87,15 +87,15 @@ public class FunctionScoreTests extends ESTestCase {
/**
* Stub for IndexFieldData. Needed by some score functions. Returns 1 as count always.
*/
private static class IndexFieldDataStub implements IndexFieldData<AtomicFieldData> {
private static class IndexFieldDataStub implements IndexFieldData<LeafFieldData> {
@Override
public String getFieldName() {
return "test";
}
@Override
public AtomicFieldData load(LeafReaderContext context) {
return new AtomicFieldData() {
public LeafFieldData load(LeafReaderContext context) {
return new LeafFieldData() {
@Override
public ScriptDocValues getScriptValues() {
@ -139,7 +139,7 @@ public class FunctionScoreTests extends ESTestCase {
}
@Override
public AtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafFieldData loadDirect(LeafReaderContext context) throws Exception {
throw new UnsupportedOperationException(UNSUPPORTED);
}
@ -182,8 +182,8 @@ public class FunctionScoreTests extends ESTestCase {
}
@Override
public AtomicNumericFieldData load(LeafReaderContext context) {
return new AtomicNumericFieldData() {
public LeafNumericFieldData load(LeafReaderContext context) {
return new LeafNumericFieldData() {
@Override
public SortedNumericDocValues getLongValues() {
throw new UnsupportedOperationException(UNSUPPORTED);
@ -236,7 +236,7 @@ public class FunctionScoreTests extends ESTestCase {
}
@Override
public AtomicNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafNumericFieldData loadDirect(LeafReaderContext context) throws Exception {
throw new UnsupportedOperationException(UNSUPPORTED);
}

View File

@ -18,7 +18,7 @@
*/
package org.elasticsearch.search.lookup;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.mapper.MappedFieldType;
@ -76,12 +76,12 @@ public class LeafDocLookupTests extends ESTestCase {
}
private IndexFieldData<?> createFieldData(ScriptDocValues scriptDocValues) {
AtomicFieldData atomicFieldData = mock(AtomicFieldData.class);
doReturn(scriptDocValues).when(atomicFieldData).getScriptValues();
LeafFieldData leafFieldData = mock(LeafFieldData.class);
doReturn(scriptDocValues).when(leafFieldData).getScriptValues();
IndexFieldData<?> fieldData = mock(IndexFieldData.class);
when(fieldData.getFieldName()).thenReturn("field");
doReturn(atomicFieldData).when(fieldData).load(anyObject());
doReturn(leafFieldData).when(fieldData).load(anyObject());
return fieldData;
}

View File

@ -30,7 +30,7 @@ import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.XContentSubParser;
import org.elasticsearch.common.xcontent.support.XContentMapValues;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicHistogramFieldData;
import org.elasticsearch.index.fielddata.LeafHistogramFieldData;
import org.elasticsearch.index.fielddata.HistogramValue;
import org.elasticsearch.index.fielddata.HistogramValues;
import org.elasticsearch.index.fielddata.IndexFieldData;
@ -202,8 +202,8 @@ public class HistogramFieldMapper extends FieldMapper {
return new IndexHistogramFieldData(indexSettings.getIndex(), fieldType.name()) {
@Override
public AtomicHistogramFieldData load(LeafReaderContext context) {
return new AtomicHistogramFieldData() {
public LeafHistogramFieldData load(LeafReaderContext context) {
return new LeafHistogramFieldData() {
@Override
public HistogramValues getHistogramValues() throws IOException {
try {
@ -256,7 +256,7 @@ public class HistogramFieldMapper extends FieldMapper {
}
@Override
public AtomicHistogramFieldData loadDirect(LeafReaderContext context) throws Exception {
public LeafHistogramFieldData loadDirect(LeafReaderContext context) throws Exception {
return load(context);
}

View File

@ -31,13 +31,13 @@ import org.elasticsearch.index.Index;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.analysis.AnalyzerScope;
import org.elasticsearch.index.analysis.NamedAnalyzer;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested;
import org.elasticsearch.index.fielddata.fieldcomparator.BytesRefFieldComparatorSource;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.DocValuesIndexFieldData;
import org.elasticsearch.index.fielddata.plain.SortedSetDVOrdinalsIndexFieldData;
import org.elasticsearch.index.mapper.DynamicKeyFieldMapper;
@ -402,15 +402,15 @@ public final class FlatObjectFieldMapper extends DynamicKeyFieldMapper {
}
@Override
public AtomicOrdinalsFieldData load(LeafReaderContext context) {
AtomicOrdinalsFieldData fieldData = delegate.load(context);
return new KeyedFlatObjectAtomicFieldData(key, fieldData);
public LeafOrdinalsFieldData load(LeafReaderContext context) {
LeafOrdinalsFieldData fieldData = delegate.load(context);
return new KeyedFlatObjectLeafFieldData(key, fieldData);
}
@Override
public AtomicOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
AtomicOrdinalsFieldData fieldData = delegate.loadDirect(context);
return new KeyedFlatObjectAtomicFieldData(key, fieldData);
public LeafOrdinalsFieldData loadDirect(LeafReaderContext context) throws Exception {
LeafOrdinalsFieldData fieldData = delegate.loadDirect(context);
return new KeyedFlatObjectLeafFieldData(key, fieldData);
}
@Override
@ -456,7 +456,7 @@ public final class FlatObjectFieldMapper extends DynamicKeyFieldMapper {
MapperService mapperService) {
String fieldName = fieldType.name();
IndexOrdinalsFieldData delegate = new SortedSetDVOrdinalsIndexFieldData(indexSettings,
cache, fieldName, breakerService, AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
cache, fieldName, breakerService, AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
return new KeyedFlatObjectFieldData(key, delegate);
}
}

View File

@ -11,11 +11,11 @@ import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.index.fielddata.AbstractSortedSetDocValues;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.FieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import java.io.IOException;
import java.io.UncheckedIOException;
@ -30,13 +30,13 @@ import java.util.Collection;
* In order to support all usage patterns, the delegate's ordinal values are shifted
* to range from 0 to the number of total values.
*/
public class KeyedFlatObjectAtomicFieldData implements AtomicOrdinalsFieldData {
public class KeyedFlatObjectLeafFieldData implements LeafOrdinalsFieldData {
private final String key;
private final AtomicOrdinalsFieldData delegate;
private final LeafOrdinalsFieldData delegate;
KeyedFlatObjectAtomicFieldData(String key,
AtomicOrdinalsFieldData delegate) {
KeyedFlatObjectLeafFieldData(String key,
LeafOrdinalsFieldData delegate) {
this.key = key;
this.delegate = delegate;
}
@ -78,7 +78,7 @@ public class KeyedFlatObjectAtomicFieldData implements AtomicOrdinalsFieldData {
@Override
public ScriptDocValues<?> getScriptValues() {
return AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION
return AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION
.apply(getOrdinalsValues());
}

View File

@ -8,7 +8,7 @@ package org.elasticsearch.index.mapper;
import org.elasticsearch.Version;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.search.lookup.LeafDocLookup;
@ -175,12 +175,12 @@ public class FlatObjectFieldLookupTests extends ESTestCase {
}
private IndexFieldData<?> createFieldData(ScriptDocValues<?> scriptDocValues) {
AtomicFieldData atomicFieldData = mock(AtomicFieldData.class);
doReturn(scriptDocValues).when(atomicFieldData).getScriptValues();
LeafFieldData leafFieldData = mock(LeafFieldData.class);
doReturn(scriptDocValues).when(leafFieldData).getScriptValues();
IndexFieldData<?> fieldData = mock(IndexFieldData.class);
when(fieldData.getFieldName()).thenReturn("field");
doReturn(atomicFieldData).when(fieldData).load(anyObject());
doReturn(leafFieldData).when(fieldData).load(anyObject());
return fieldData;
}

View File

@ -9,8 +9,8 @@ package org.elasticsearch.xpack.flattened.mapper;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.index.fielddata.AbstractSortedSetDocValues;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.test.ESTestCase;
import org.junit.Before;
@ -18,8 +18,8 @@ import java.io.IOException;
import static org.apache.lucene.index.SortedSetDocValues.NO_MORE_ORDS;
public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
private AtomicOrdinalsFieldData delegate;
public class KeyedFlatObjectLeafFieldDataTests extends ESTestCase {
private LeafOrdinalsFieldData delegate;
@Before
public void setUpDelegate() {
@ -49,7 +49,7 @@ public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
}
}
delegate = new MockAtomicOrdinalsFieldData(allTerms, documentOrds);
delegate = new MockLeafOrdinalsFieldData(allTerms, documentOrds);
}
private BytesRef prefixedValue(String key, String value) {
@ -65,11 +65,11 @@ public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
testFindOrdinalBounds("cantaloupe", delegate, 40, 40);
testFindOrdinalBounds("cucumber", delegate, 41, 59);
AtomicOrdinalsFieldData emptyDelegate = new MockAtomicOrdinalsFieldData(new BytesRef[0], new long[0]);
LeafOrdinalsFieldData emptyDelegate = new MockLeafOrdinalsFieldData(new BytesRef[0], new long[0]);
testFindOrdinalBounds("apple", emptyDelegate, -1, -1);
BytesRef[] terms = new BytesRef[] { prefixedValue("prefix", "value") };
AtomicOrdinalsFieldData singleValueDelegate = new MockAtomicOrdinalsFieldData(terms, new long[0]);
LeafOrdinalsFieldData singleValueDelegate = new MockLeafOrdinalsFieldData(terms, new long[0]);
testFindOrdinalBounds("prefix", singleValueDelegate, 0, 0);
testFindOrdinalBounds("prefix1", singleValueDelegate, -1, -1);
@ -78,7 +78,7 @@ public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
prefixedValue("prefix1", "value1"),
prefixedValue("prefix2", "value"),
prefixedValue("prefix3", "value")};
AtomicOrdinalsFieldData oddLengthDelegate = new MockAtomicOrdinalsFieldData(terms, new long[0]);
LeafOrdinalsFieldData oddLengthDelegate = new MockLeafOrdinalsFieldData(terms, new long[0]);
testFindOrdinalBounds("prefix", oddLengthDelegate, 0, 0);
testFindOrdinalBounds("prefix1", oddLengthDelegate, 1, 2);
testFindOrdinalBounds("prefix2", oddLengthDelegate, 3, 3);
@ -86,31 +86,31 @@ public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
}
public void testFindOrdinalBounds(String key,
AtomicOrdinalsFieldData delegate,
LeafOrdinalsFieldData delegate,
long expectedMinOrd,
long expectedMacOrd) throws IOException {
BytesRef bytesKey = new BytesRef(key);
long actualMinOrd = KeyedFlatObjectAtomicFieldData.findMinOrd(bytesKey, delegate.getOrdinalsValues());
long actualMinOrd = KeyedFlatObjectLeafFieldData.findMinOrd(bytesKey, delegate.getOrdinalsValues());
assertEquals(expectedMinOrd, actualMinOrd);
long actualMaxOrd = KeyedFlatObjectAtomicFieldData.findMaxOrd(bytesKey, delegate.getOrdinalsValues());
long actualMaxOrd = KeyedFlatObjectLeafFieldData.findMaxOrd(bytesKey, delegate.getOrdinalsValues());
assertEquals(expectedMacOrd, actualMaxOrd);
}
public void testAdvanceExact() throws IOException {
AtomicOrdinalsFieldData avocadoFieldData = new KeyedFlatObjectAtomicFieldData("avocado", delegate);
LeafOrdinalsFieldData avocadoFieldData = new KeyedFlatObjectLeafFieldData("avocado", delegate);
assertFalse(avocadoFieldData.getOrdinalsValues().advanceExact(0));
AtomicOrdinalsFieldData bananaFieldData = new KeyedFlatObjectAtomicFieldData("banana", delegate);
LeafOrdinalsFieldData bananaFieldData = new KeyedFlatObjectLeafFieldData("banana", delegate);
assertTrue(bananaFieldData.getOrdinalsValues().advanceExact(0));
AtomicOrdinalsFieldData nonexistentFieldData = new KeyedFlatObjectAtomicFieldData("berry", delegate);
LeafOrdinalsFieldData nonexistentFieldData = new KeyedFlatObjectLeafFieldData("berry", delegate);
assertFalse(nonexistentFieldData.getOrdinalsValues().advanceExact(0));
}
public void testNextOrd() throws IOException {
AtomicOrdinalsFieldData fieldData = new KeyedFlatObjectAtomicFieldData("banana", delegate);
LeafOrdinalsFieldData fieldData = new KeyedFlatObjectLeafFieldData("banana", delegate);
SortedSetDocValues docValues = fieldData.getOrdinalsValues();
docValues.advanceExact(0);
@ -128,25 +128,25 @@ public class KeyedFlatObjectAtomicFieldDataTests extends ESTestCase {
}
public void testLookupOrd() throws IOException {
AtomicOrdinalsFieldData appleFieldData = new KeyedFlatObjectAtomicFieldData("apple", delegate);
LeafOrdinalsFieldData appleFieldData = new KeyedFlatObjectLeafFieldData("apple", delegate);
SortedSetDocValues appleDocValues = appleFieldData.getOrdinalsValues();
assertEquals(new BytesRef("value0"), appleDocValues.lookupOrd(0));
AtomicOrdinalsFieldData cantaloupeFieldData = new KeyedFlatObjectAtomicFieldData("cantaloupe", delegate);
LeafOrdinalsFieldData cantaloupeFieldData = new KeyedFlatObjectLeafFieldData("cantaloupe", delegate);
SortedSetDocValues cantaloupeDocValues = cantaloupeFieldData.getOrdinalsValues();
assertEquals(new BytesRef("value40"), cantaloupeDocValues.lookupOrd(0));
AtomicOrdinalsFieldData cucumberFieldData = new KeyedFlatObjectAtomicFieldData("cucumber", delegate);
LeafOrdinalsFieldData cucumberFieldData = new KeyedFlatObjectLeafFieldData("cucumber", delegate);
SortedSetDocValues cucumberDocValues = cucumberFieldData.getOrdinalsValues();
assertEquals(new BytesRef("value41"), cucumberDocValues.lookupOrd(0));
}
private static class MockAtomicOrdinalsFieldData extends AbstractAtomicOrdinalsFieldData {
private static class MockLeafOrdinalsFieldData extends AbstractLeafOrdinalsFieldData {
private final SortedSetDocValues docValues;
MockAtomicOrdinalsFieldData(BytesRef[] allTerms,
long[] documentOrds) {
super(AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
MockLeafOrdinalsFieldData(BytesRef[] allTerms,
long[] documentOrds) {
super(AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
this.docValues = new MockSortedSetDocValues(allTerms, documentOrds);
}

View File

@ -23,12 +23,12 @@ import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.common.lucene.index.ElasticsearchDirectoryReader;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.AtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.LeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.IndexFieldData;
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractAtomicOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.AbstractLeafOrdinalsFieldData;
import org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData;
import org.elasticsearch.index.fielddata.plain.SortedSetDVOrdinalsIndexFieldData;
import org.elasticsearch.index.mapper.TextFieldMapper;
@ -61,7 +61,7 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
String name = "_field";
indexFieldDataCache = new DummyAccountingFieldDataCache();
sortedSetDVOrdinalsIndexFieldData = new SortedSetDVOrdinalsIndexFieldData(indexSettings,indexFieldDataCache, name,
circuitBreakerService, AbstractAtomicOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
circuitBreakerService, AbstractLeafOrdinalsFieldData.DEFAULT_SCRIPT_FUNCTION);
pagedBytesIndexFieldData = new PagedBytesIndexFieldData(indexSettings, name, indexFieldDataCache,
circuitBreakerService, TextFieldMapper.Defaults.FIELDDATA_MIN_FREQUENCY,
TextFieldMapper.Defaults.FIELDDATA_MAX_FREQUENCY,
@ -95,7 +95,7 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
public void testSortedSetDVOrdinalsIndexFieldData_global() throws Exception {
assertThat(indexFieldDataCache.topLevelBuilds, equalTo(0));
IndexOrdinalsFieldData global = sortedSetDVOrdinalsIndexFieldData.loadGlobal(ir);
AtomicOrdinalsFieldData atomic = global.load(ir.leaves().get(0));
LeafOrdinalsFieldData atomic = global.load(ir.leaves().get(0));
assertThat(atomic.getOrdinalsValues().getValueCount(), equalTo(numDocs));
assertThat(indexFieldDataCache.topLevelBuilds, equalTo(1));
@ -108,13 +108,13 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
public void testSortedSetDVOrdinalsIndexFieldData_segment() throws Exception {
for (LeafReaderContext context : ir.leaves()) {
AtomicOrdinalsFieldData atomic = sortedSetDVOrdinalsIndexFieldData.load(context);
LeafOrdinalsFieldData atomic = sortedSetDVOrdinalsIndexFieldData.load(context);
assertThat(atomic.getOrdinalsValues().getValueCount(), greaterThanOrEqualTo(1L));
}
DirectoryReader ir = FieldSubsetReader.wrap(this.ir, new CharacterRunAutomaton(Automata.makeEmpty()));
for (LeafReaderContext context : ir.leaves()) {
AtomicOrdinalsFieldData atomic = sortedSetDVOrdinalsIndexFieldData.load(context);
LeafOrdinalsFieldData atomic = sortedSetDVOrdinalsIndexFieldData.load(context);
assertThat(atomic.getOrdinalsValues().getValueCount(), equalTo(0L));
}
// dv based field data doesn't use index field data cache, so in the end noting should have been added
@ -124,7 +124,7 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
public void testPagedBytesIndexFieldData_global() throws Exception {
assertThat(indexFieldDataCache.topLevelBuilds, equalTo(0));
IndexOrdinalsFieldData global = pagedBytesIndexFieldData.loadGlobal(ir);
AtomicOrdinalsFieldData atomic = global.load(ir.leaves().get(0));
LeafOrdinalsFieldData atomic = global.load(ir.leaves().get(0));
assertThat(atomic.getOrdinalsValues().getValueCount(), equalTo(numDocs));
assertThat(indexFieldDataCache.topLevelBuilds, equalTo(1));
@ -138,14 +138,14 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
public void testPagedBytesIndexFieldData_segment() throws Exception {
assertThat(indexFieldDataCache.leafLevelBuilds, equalTo(0));
for (LeafReaderContext context : ir.leaves()) {
AtomicOrdinalsFieldData atomic = pagedBytesIndexFieldData.load(context);
LeafOrdinalsFieldData atomic = pagedBytesIndexFieldData.load(context);
assertThat(atomic.getOrdinalsValues().getValueCount(), greaterThanOrEqualTo(1L));
}
assertThat(indexFieldDataCache.leafLevelBuilds, equalTo(ir.leaves().size()));
DirectoryReader ir = FieldSubsetReader.wrap(this.ir, new CharacterRunAutomaton(Automata.makeEmpty()));
for (LeafReaderContext context : ir.leaves()) {
AtomicOrdinalsFieldData atomic = pagedBytesIndexFieldData.load(context);
LeafOrdinalsFieldData atomic = pagedBytesIndexFieldData.load(context);
assertThat(atomic.getOrdinalsValues().getValueCount(), equalTo(0L));
}
assertThat(indexFieldDataCache.leafLevelBuilds, equalTo(ir.leaves().size()));
@ -168,15 +168,15 @@ public class FieldDataCacheWithFieldSubsetReaderTests extends ESTestCase {
private int topLevelBuilds = 0;
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
public <FD extends LeafFieldData, IFD extends IndexFieldData<FD>> FD load(LeafReaderContext context, IFD indexFieldData)
throws Exception {
leafLevelBuilds++;
return indexFieldData.loadDirect(context);
}
@Override
public <FD extends AtomicFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
public <FD extends LeafFieldData, IFD extends IndexFieldData.Global<FD>> IFD load(DirectoryReader indexReader,
IFD indexFieldData) throws Exception {
topLevelBuilds++;
return (IFD) indexFieldData.localGlobalDirect(indexReader);
}

View File

@ -26,7 +26,7 @@ import org.elasticsearch.search.sort.BucketedSort;
import org.elasticsearch.search.sort.SortOrder;
public class VectorDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<VectorDVAtomicFieldData> {
public class VectorDVIndexFieldData extends DocValuesIndexFieldData implements IndexFieldData<VectorDVLeafFieldData> {
private final boolean isDense;
public VectorDVIndexFieldData(Index index, String fieldName, boolean isDense) {
@ -46,12 +46,12 @@ public class VectorDVIndexFieldData extends DocValuesIndexFieldData implements I
}
@Override
public VectorDVAtomicFieldData load(LeafReaderContext context) {
return new VectorDVAtomicFieldData(context.reader(), fieldName, isDense);
public VectorDVLeafFieldData load(LeafReaderContext context) {
return new VectorDVLeafFieldData(context.reader(), fieldName, isDense);
}
@Override
public VectorDVAtomicFieldData loadDirect(LeafReaderContext context) throws Exception {
public VectorDVLeafFieldData loadDirect(LeafReaderContext context) {
return load(context);
}

View File

@ -12,7 +12,7 @@ import org.apache.lucene.index.DocValues;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.BytesRef;
import org.elasticsearch.index.fielddata.AtomicFieldData;
import org.elasticsearch.index.fielddata.LeafFieldData;
import org.elasticsearch.index.fielddata.ScriptDocValues;
import org.elasticsearch.index.fielddata.SortedBinaryDocValues;
@ -20,13 +20,13 @@ import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
final class VectorDVAtomicFieldData implements AtomicFieldData {
final class VectorDVLeafFieldData implements LeafFieldData {
private final LeafReader reader;
private final String field;
private final boolean isDense;
VectorDVAtomicFieldData(LeafReader reader, String field, boolean isDense) {
VectorDVLeafFieldData(LeafReader reader, String field, boolean isDense) {
this.reader = reader;
this.field = field;
this.isDense = isDense;