java.lang.Object
org.elasticsearch.index.mapper.Mapper
All Implemented Interfaces:
Iterable<Mapper>, ToXContent, ToXContentFragment
Direct Known Subclasses:
FieldAliasMapper, FieldMapper, ObjectMapper

public abstract class Mapper extends Object implements ToXContentFragment, Iterable<Mapper>
  • Constructor Details

    • Mapper

      public Mapper(String simpleName)
  • Method Details

    • simpleName

      public final String simpleName()
      Returns the simple name, which identifies this mapper against other mappers at the same level in the mappers hierarchy TODO: make this protected once Mapper and FieldMapper are merged together
    • name

      public abstract String name()
      Returns the canonical name which uniquely identifies the mapper against other mappers in a type.
    • typeName

      public abstract String typeName()
      Returns a name representing the type of this mapper.
    • merge

      public abstract Mapper merge(Mapper mergeWith, MapperMergeContext mapperMergeContext)
      Return the merge of mergeWith into this. Both this and mergeWith will be left unmodified.
    • validate

      public abstract void validate(MappingLookup mappers)
      Validate any cross-field references made by this mapper
      Parameters:
      mappers - a MappingLookup that can produce references to other mappers
    • syntheticFieldLoader

      public SourceLoader.SyntheticFieldLoader syntheticFieldLoader()
      Create a SourceLoader.SyntheticFieldLoader to populate synthetic source.
      Throws:
      IllegalArgumentException - if the field is configured in a way that doesn't support synthetic source. This translates nicely into a 400 error when users configure synthetic source in the mapping without configuring all fields properly.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • internFieldName

      public static String internFieldName(String fieldName)
      Interns the given field name string through a StringLiteralDeduplicator.
      Parameters:
      fieldName - field name to intern
      Returns:
      interned field name string
    • freezeAndDeduplicateFieldType

      public static org.apache.lucene.document.FieldType freezeAndDeduplicateFieldType(org.apache.lucene.document.FieldType fieldType)
      Freezes the given FieldType instances and tries to deduplicate it as long as the field does not return a non-empty value for FieldType.getAttributes().
      Parameters:
      fieldType - field type to deduplicate
      Returns:
      deduplicated field type
    • getTotalFieldsCount

      public abstract int getTotalFieldsCount()
      The total number of fields as defined in the mapping. Defines how this mapper counts towards MapperService.INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING.