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.