Module org.elasticsearch.server
Package org.elasticsearch.index.mapper
Class IgnoredSourceFieldMapper
java.lang.Object
org.elasticsearch.index.mapper.Mapper
org.elasticsearch.index.mapper.FieldMapper
org.elasticsearch.index.mapper.MetadataFieldMapper
org.elasticsearch.index.mapper.IgnoredSourceFieldMapper
- All Implemented Interfaces:
Iterable<Mapper>,ToXContent,ToXContentFragment
Mapper for the
_ignored_source field.
A field mapper that records fields that have been ignored or otherwise need storing their source, along with their values.
It's intended for use in indexes with synthetic source to reconstruct the latter, taking into account fields that got ignored or
transformed during indexing. Entries get stored in lexicographical order by field name.
This overlaps with IgnoredFieldMapper that tracks just the ignored field names. It's worth evaluating
if we can replace it for all use cases to avoid duplication, assuming that the storage tradeoff is favorable.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordstatic final recordNested classes/interfaces inherited from class org.elasticsearch.index.mapper.MetadataFieldMapper
MetadataFieldMapper.Builder, MetadataFieldMapper.ConfigurableTypeParser, MetadataFieldMapper.FixedTypeParser, MetadataFieldMapper.TypeParserNested classes/interfaces inherited from class org.elasticsearch.index.mapper.FieldMapper
FieldMapper.BuilderParams, FieldMapper.Conflicts, FieldMapper.CopyTo, FieldMapper.DimensionBuilder, FieldMapper.MergeValidator<T>, FieldMapper.MultiFields, FieldMapper.Parameter<T>, FieldMapper.Serializer<T>, FieldMapper.SerializerCheck<T>, FieldMapper.SyntheticSourceMode, FieldMapper.SyntheticSourceSupportNested classes/interfaces inherited from class org.elasticsearch.index.mapper.Mapper
Mapper.SourceKeepModeNested classes/interfaces inherited from interface org.elasticsearch.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params -
Field Summary
FieldsFields inherited from class org.elasticsearch.index.mapper.FieldMapper
builderParams, COERCE_SETTING, deprecationLogger, IGNORE_MALFORMED_SETTING, mappedFieldTypeFields inherited from class org.elasticsearch.index.mapper.Mapper
SYNTHETIC_SOURCE_KEEP_INDEX_SETTING, SYNTHETIC_SOURCE_KEEP_PARAMFields inherited from interface org.elasticsearch.xcontent.ToXContent
EMPTY, EMPTY_PARAMS -
Method Summary
Modifier and TypeMethodDescriptionprotected StringdecodeAsMap(byte[] value) Parses the passed byte array as a NameValue and converts its decoded value to a map of maps that corresponds to the field-value subtree.static byte[]encodeFromMap(IgnoredSourceFieldMapper.MappedNameValue mappedNameValue, Map<String, Object> map) Clones the passed NameValue, using the passed map to produce its value.ensureLoaded(Set<String> fieldsToLoadForSyntheticSource, IndexSettings indexSettings) voidpostParse(DocumentParserContext context) Called afterFieldMapper.parse(DocumentParserContext)on theRootObjectMapper.protected FieldMapper.SyntheticSourceSupportReturns implementation of synthetic source support for the mapper.Methods inherited from class org.elasticsearch.index.mapper.MetadataFieldMapper
getMergeBuilder, parseCreateField, preParse, toXContent, updateableBoolParamMethods inherited from class org.elasticsearch.index.mapper.FieldMapper
checkIncomingMergeType, copyTo, createTypeParserWithLegacySupport, doValidate, doXContentBody, executeScript, fieldType, fullPath, getTotalFieldsCount, hasScript, ignoreMalformed, indexAnalyzers, indexScriptValues, iterator, merge, multiFields, multiFieldsIterator, notFromDynamicTemplates, notInMultiFields, parse, parsesArrayValue, sourceKeepMode, sourcePathUsedBy, supportsParsingObject, syntheticFieldLoader, typeName, validateMethods inherited from class org.elasticsearch.index.mapper.Mapper
freezeAndDeduplicateFieldType, internFieldName, leafName, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.elasticsearch.xcontent.ToXContentFragment
isFragment
-
Field Details
-
NAME
- See Also:
-
PARSER
-
SKIP_IGNORED_SOURCE_WRITE_SETTING
-
SKIP_IGNORED_SOURCE_READ_SETTING
-
-
Method Details
-
contentType
- Specified by:
contentTypein classFieldMapper
-
postParse
Description copied from class:MetadataFieldMapperCalled afterFieldMapper.parse(DocumentParserContext)on theRootObjectMapper.- Overrides:
postParsein classMetadataFieldMapper
-
ensureLoaded
public static Set<String> ensureLoaded(Set<String> fieldsToLoadForSyntheticSource, IndexSettings indexSettings) -
syntheticSourceSupport
Description copied from class:FieldMapperReturns implementation of synthetic source support for the mapper.
By default (meaningFieldMapper.SyntheticSourceSupport.Fallback), an exact full copy of parsed field value is stored separately and used for synthetic source.Field mappers must override this method if they provide a more efficient field-specific implementation of synthetic source.
- Overrides:
syntheticSourceSupportin classMetadataFieldMapper- Returns:
FieldMapper.SyntheticSourceMode
-
decodeAsMap
Parses the passed byte array as a NameValue and converts its decoded value to a map of maps that corresponds to the field-value subtree. There is only a single pair at the top level, with the key corresponding to the field name. If the field contains a single value, the map contains a single key-value pair. Otherwise, the value of the first pair will be another map etc.- Parameters:
value- encoded NameValue- Returns:
- MappedNameValue with the parsed NameValue, the XContentType to use for serializing its contents and the field-value map.
- Throws:
IOException
-
encodeFromMap
public static byte[] encodeFromMap(IgnoredSourceFieldMapper.MappedNameValue mappedNameValue, Map<String, Object> map) throws IOExceptionClones the passed NameValue, using the passed map to produce its value.- Parameters:
mappedNameValue- containing the NameValue to clonemap- containing a simple field-value pair, or a deeper field-value subtree for objects and arrays with fields- Returns:
- a byte array containing the encoding form of the cloned NameValue
- Throws:
IOException
-