Module org.elasticsearch.server
Class GeoBytesRefFromLongsBlockLoader
java.lang.Object
org.elasticsearch.index.mapper.blockloader.docvalues.BlockDocValuesReader.DocValuesBlockLoader
org.elasticsearch.index.mapper.blockloader.docvalues.GeoBytesRefFromLongsBlockLoader
- All Implemented Interfaces:
BlockLoader
public final class GeoBytesRefFromLongsBlockLoader
extends BlockDocValuesReader.DocValuesBlockLoader
This is a GeoPoint-specific block loader that helps deal with an edge case where doc_values are available, yet
FieldExtractPreference = NONE. When this happens, the BlockLoader sanity checker (see PlannerUtils.toElementType) expects a BytesRef.
This implies that we need to load the value from _source. This however is very slow, especially when synthetic source is enabled.
We're better off reading from doc_values and converting to BytesRef to satisfy the checker. This is what this block loader is for.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.elasticsearch.index.mapper.BlockLoader
BlockLoader.AggregateMetricDoubleBuilder, BlockLoader.Block, BlockLoader.BlockFactory, BlockLoader.BooleanBuilder, BlockLoader.Builder, BlockLoader.BytesRefBuilder, BlockLoader.ColumnAtATimeReader, BlockLoader.ConditionalBlockLoader, BlockLoader.Docs, BlockLoader.DoubleBuilder, BlockLoader.ExponentialHistogramBuilder, BlockLoader.FloatBuilder, BlockLoader.IntBuilder, BlockLoader.LongBuilder, BlockLoader.LongRangeBuilder, BlockLoader.OptionalColumnAtATimeReader, BlockLoader.OptionalLengthReader, BlockLoader.Reader, BlockLoader.RowStrideReader, BlockLoader.SingletonBytesRefBuilder, BlockLoader.SingletonDoubleBuilder, BlockLoader.SingletonIntBuilder, BlockLoader.SingletonLongBuilder, BlockLoader.SingletonOrdinalsBuilder, BlockLoader.SortedSetOrdinalsBuilder, BlockLoader.StoredFields, BlockLoader.TDigestBuilder -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuilder(BlockLoader.BlockFactory factory, int expectedCount) TheBlockLoader.Builderfor data of this type.reader(CircuitBreaker breaker, org.apache.lucene.index.LeafReaderContext context) Methods inherited from class org.elasticsearch.index.mapper.blockloader.docvalues.BlockDocValuesReader.DocValuesBlockLoader
columnAtATimeReader, ordinals, rowStrideReader, rowStrideStoredFieldSpec, supportsOrdinals
-
Constructor Details
-
GeoBytesRefFromLongsBlockLoader
-
-
Method Details
-
builder
Description copied from interface:BlockLoaderTheBlockLoader.Builderfor data of this type. Called when loading from a multi-segment or unsorted block. -
reader
public BlockLoader.ColumnAtATimeReader reader(CircuitBreaker breaker, org.apache.lucene.index.LeafReaderContext context) throws IOException - Specified by:
readerin classBlockDocValuesReader.DocValuesBlockLoader- Throws:
IOException
-