Package org.elasticsearch.index.mapper
Class DynamicKeyFieldMapper
java.lang.Object
org.elasticsearch.index.mapper.Mapper
org.elasticsearch.index.mapper.FieldMapper
org.elasticsearch.index.mapper.DynamicKeyFieldMapper
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<Mapper>
,org.elasticsearch.common.xcontent.ToXContent
,org.elasticsearch.common.xcontent.ToXContentFragment
public abstract class DynamicKeyFieldMapper extends FieldMapper
A field mapper that supports lookup of dynamic sub-keys. If the field mapper is named 'my_field',
then a user is able to search on the field in both of the following ways:
- Using the field name 'my_field', which will delegate to the field type
FieldMapper.fieldType()
as usual.
- Using any sub-key, for example 'my_field.some_key'. In this case, the search is delegated
to keyedFieldType(String)
, with 'some_key' passed as the
argument. The field mapper is allowed to create a new field type dynamically in order
to handle the search.
To prevent conflicts between these dynamic sub-keys and multi-fields, any field mappers
implementing this interface should explicitly disallow multi-fields. The constructor makes
sure to passes an empty multi-fields list to help prevent conflicting sub-keys from being
registered.
Note: we anticipate that 'flattened' fields will be the only implementation of this
interface. Flattened object fields live in the 'mapper-flattened' module.-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.FieldMapper
FieldMapper.Builder<T extends FieldMapper.Builder<T>>, FieldMapper.CopyTo, FieldMapper.MultiFields
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.Mapper
Mapper.BuilderContext, Mapper.TypeParser
-
Field Summary
Fields inherited from class org.elasticsearch.index.mapper.FieldMapper
COERCE_SETTING, copyTo, fieldType, IGNORE_MALFORMED_SETTING, mappedFieldType, multiFields
-
Constructor Summary
Constructors Constructor Description DynamicKeyFieldMapper(java.lang.String simpleName, org.apache.lucene.document.FieldType fieldType, MappedFieldType defaultFieldType, FieldMapper.CopyTo copyTo)
-
Method Summary
Modifier and Type Method Description abstract MappedFieldType
keyedFieldType(java.lang.String key)
Methods inherited from class org.elasticsearch.index.mapper.FieldMapper
clone, contentType, copyTo, createFieldNamesField, docValuesByDefault, doXContentAnalyzers, doXContentBody, fieldType, indexedByDefault, indexOptionToString, iterator, merge, mergeOptions, name, parse, parseCreateField, parsesArrayValue, storedByDefault, termVectorOptionsToString, toXContent, typeName
-
Constructor Details
-
DynamicKeyFieldMapper
public DynamicKeyFieldMapper(java.lang.String simpleName, org.apache.lucene.document.FieldType fieldType, MappedFieldType defaultFieldType, FieldMapper.CopyTo copyTo)
-
-
Method Details