Class MapperService

java.lang.Object
org.elasticsearch.index.AbstractIndexComponent
org.elasticsearch.index.mapper.MapperService
All Implemented Interfaces:
java.io.Closeable, java.lang.AutoCloseable, IndexComponent

public class MapperService
extends AbstractIndexComponent
implements java.io.Closeable
  • Field Details

    • DEFAULT_MAPPING

      public static final java.lang.String DEFAULT_MAPPING
      See Also:
      Constant Field Values
    • SINGLE_MAPPING_NAME

      public static final java.lang.String SINGLE_MAPPING_NAME
      See Also:
      Constant Field Values
    • INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING

      public static final Setting<java.lang.Long> INDEX_MAPPING_NESTED_FIELDS_LIMIT_SETTING
    • INDEX_MAPPING_NESTED_DOCS_LIMIT_SETTING

      public static final Setting<java.lang.Long> INDEX_MAPPING_NESTED_DOCS_LIMIT_SETTING
    • INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING

      public static final Setting<java.lang.Long> INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING
    • INDEX_MAPPING_DEPTH_LIMIT_SETTING

      public static final Setting<java.lang.Long> INDEX_MAPPING_DEPTH_LIMIT_SETTING
    • INDEX_MAPPING_FIELD_NAME_LENGTH_LIMIT_SETTING

      public static final Setting<java.lang.Long> INDEX_MAPPING_FIELD_NAME_LENGTH_LIMIT_SETTING
    • INDEX_MAPPER_DYNAMIC_DEFAULT

      public static final boolean INDEX_MAPPER_DYNAMIC_DEFAULT
      See Also:
      Constant Field Values
    • INDEX_MAPPER_DYNAMIC_SETTING

      @Deprecated public static final Setting<java.lang.Boolean> INDEX_MAPPER_DYNAMIC_SETTING
      Deprecated.
    • META_FIELDS_BEFORE_7DOT8

      @Deprecated public static final java.util.Set<java.lang.String> META_FIELDS_BEFORE_7DOT8
      Deprecated.
  • Constructor Details

  • Method Details

    • hasNested

      public boolean hasNested()
    • getIndexAnalyzers

      public IndexAnalyzers getIndexAnalyzers()
    • getNamedAnalyzer

      public NamedAnalyzer getNamedAnalyzer​(java.lang.String analyzerName)
    • parserContext

      public Mapper.TypeParser.ParserContext parserContext()
    • parseMapping

      public static java.util.Map<java.lang.String,​java.lang.Object> parseMapping​(org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, java.lang.String mappingSource) throws java.io.IOException
      Parses the mappings (formatted as JSON) into a map
      Throws:
      java.io.IOException
    • updateMapping

      public void updateMapping​(IndexMetadata currentIndexMetadata, IndexMetadata newIndexMetadata) throws java.io.IOException
      Update mapping by only merging the metadata that is different between received and stored entries
      Throws:
      java.io.IOException
    • merge

      public void merge​(java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>> mappings, MapperService.MergeReason reason)
    • merge

      public void merge​(java.lang.String type, java.util.Map<java.lang.String,​java.lang.Object> mappings, MapperService.MergeReason reason) throws java.io.IOException
      Throws:
      java.io.IOException
    • merge

      public void merge​(IndexMetadata indexMetadata, MapperService.MergeReason reason)
    • merge

      public DocumentMapper merge​(java.lang.String type, CompressedXContent mappingSource, MapperService.MergeReason reason)
    • parseMapping

      public Mapping parseMapping​(java.lang.String type, CompressedXContent mappingSource, boolean applyDefault)
    • mergeMappings

      public static Mapping mergeMappings​(DocumentMapper currentMapper, Mapping incomingMapping, MapperService.MergeReason reason)
    • parse

      public DocumentMapper parse​(java.lang.String mappingType, CompressedXContent mappingSource, boolean applyDefault) throws MapperParsingException
      Throws:
      MapperParsingException
    • documentMapper

      public DocumentMapper documentMapper()
      Return the document mapper, or null if no mapping has been put yet.
    • documentMapper

      public DocumentMapper documentMapper​(java.lang.String type)
      Return the DocumentMapper for the given type. By using the special "_default_" type, you can get a DocumentMapper for the default mapping.
    • isMappingSourceTyped

      public static boolean isMappingSourceTyped​(java.lang.String type, java.util.Map<java.lang.String,​java.lang.Object> mapping)
      Returns true if the given mappingSource includes a type as a top-level object.
    • isMappingSourceTyped

      public static boolean isMappingSourceTyped​(java.lang.String type, CompressedXContent mappingSource)
    • getTypeForUpdate

      public java.lang.String getTypeForUpdate​(java.lang.String type, CompressedXContent mappingSource)
      If the _type name is _doc and there is no _doc top-level key then this means that we are handling a typeless call. In such a case, we override _doc with the actual type name in the mappings. This allows to use typeless APIs on typed indices.
    • resolveDocumentType

      public java.lang.String resolveDocumentType​(java.lang.String type)
      Resolves a type from a mapping-related request into the type that should be used when merging and updating mappings.

      If the special `_doc` type is provided, then we replace it with the actual type that is being used in the mappings. This allows typeless APIs such as 'index' or 'put mappings' to work against indices with a custom type name.

    • documentMapperWithAutoCreate

      public DocumentMapperForType documentMapperWithAutoCreate​(java.lang.String type)
      Returns the document mapper created, including a mapping update if the type has been dynamically created.
    • fieldType

      public MappedFieldType fieldType​(java.lang.String fullName)
      Given the full name of a field, returns its MappedFieldType.
    • simpleMatchToFullName

      public java.util.Set<java.lang.String> simpleMatchToFullName​(java.lang.String pattern)
      Returns all the fields that match the given pattern. If the pattern is prefixed with a type then the fields will be returned with a type prefix.
    • mappingLookup

      public MappingLookup mappingLookup()
      volatile read a (mostly) immutable snapshot current mapping.
    • getEagerGlobalOrdinalsFields

      public java.lang.Iterable<MappedFieldType> getEagerGlobalOrdinalsFields()
      Returns all mapped field types.
    • indexAnalyzer

      public NamedAnalyzer indexAnalyzer​(java.lang.String field, java.util.function.Function<java.lang.String,​NamedAnalyzer> unindexedFieldAnalyzer)
      Return the index-time analyzer associated with a particular field
      Parameters:
      field - the field name
      unindexedFieldAnalyzer - a function to return an Analyzer for a field with no directly associated index-time analyzer
    • close

      public void close() throws java.io.IOException
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Throws:
      java.io.IOException
    • isMetadataField

      public boolean isMetadataField​(java.lang.String field)
      Returns:
      Whether a field is a metadata field. this method considers all mapper plugins
    • reloadSearchAnalyzers

      public java.util.List<java.lang.String> reloadSearchAnalyzers​(AnalysisRegistry registry) throws java.io.IOException
      Throws:
      java.io.IOException