Package org.elasticsearch.index.mapper
Class MappingLookup
java.lang.Object
org.elasticsearch.index.mapper.MappingLookup
A (mostly) immutable snapshot of the current mapping of an index with
access to everything we need for the search phase.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Key for the lookup to be used in caches. -
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptioncacheKey()
Key for the lookup to be used in caches.Returns an iterable over all the registered field mappers (including alias mappers)static MappingLookup
fromMappers(Mapping mapping, Collection<FieldMapper> mappers, Collection<ObjectMapper> objectMappers, Collection<FieldAliasMapper> aliasMappers)
Creates a newMappingLookup
instance given the provided mappers and mapping.static MappingLookup
fromMapping(Mapping mapping)
Creates a newMappingLookup
instance by parsing the provided mapping and extracting its field definitions.getFieldType(String field)
Returns the mapped field type for the given field name.Returns the leaf mapper associated with this field name.Returns the mapping source that this lookup originated fromgetMatchingFieldNames(String pattern)
Returns a set of field names that match a regex-like pattern All field names in the returned set are guaranteed to resolve to a fieldReturns all nested object mappersgetNestedParent(String path)
Given a nested object path, returns the path to its nested parent In particular, if a nested field `foo` contains an object field `bar.baz`, then calling this method with `foo.bar.baz` will return the path `foo`, skipping over the object-but-not-nested `foo.bar`Returns all nested object mappers which contain further nested object mappers Used by BitSetProducerWarmergetNestedScope(String path)
getType()
boolean
Returns true if the index has mappings.boolean
indexAnalyzer(String field, Function<String,NamedAnalyzer> unmappedFieldAnalyzer)
boolean
isMultiField(String field)
boolean
isObjectField(String field)
boolean
sourcePaths(String field)
Given a concrete field name, return its paths in the _source.
-
Field Details
-
EMPTY
A lookup representing an empty mapping. It can be used to look up fields, although it won't hold any, but it does not hold a validDocumentParser
,IndexSettings
orIndexAnalyzers
.
-
-
Method Details
-
fromMapping
Creates a newMappingLookup
instance by parsing the provided mapping and extracting its field definitions.- Parameters:
mapping
- the mapping source- Returns:
- the newly created lookup instance
-
fromMappers
public static MappingLookup fromMappers(Mapping mapping, Collection<FieldMapper> mappers, Collection<ObjectMapper> objectMappers, Collection<FieldAliasMapper> aliasMappers)Creates a newMappingLookup
instance given the provided mappers and mapping. Note that the provided mappings are not re-parsed but only exposed as-is. No consistency is enforced between the provided mappings and set of mappers. This is a commodity method to be used in tests, or whenever no mappings are defined for an index. When creating a MappingLookup through this method, its exposed functionalities are limited as it does not hold a validDocumentParser
,IndexSettings
orIndexAnalyzers
.- Parameters:
mapping
- the mappingmappers
- the field mappersobjectMappers
- the object mappersaliasMappers
- the field alias mappers- Returns:
- the newly created lookup instance
-
getMapper
Returns the leaf mapper associated with this field name. Note that the returned mapper could be either a concreteFieldMapper
, or aFieldAliasMapper
. To access a field's type information,MapperService.fieldType(java.lang.String)
should be used instead. -
indexAnalyzer
public NamedAnalyzer indexAnalyzer(String field, Function<String,NamedAnalyzer> unmappedFieldAnalyzer) -
fieldMappers
Returns an iterable over all the registered field mappers (including alias mappers) -
hasNested
public boolean hasNested() -
objectMappers
-
isMultiField
-
isObjectField
-
getNestedScope
-
getMatchingFieldNames
Returns a set of field names that match a regex-like pattern All field names in the returned set are guaranteed to resolve to a field- Parameters:
pattern
- the pattern to match field names against
-
getFieldType
Returns the mapped field type for the given field name. -
sourcePaths
Given a concrete field name, return its paths in the _source. For most fields, the source path is the same as the field itself. However there are cases where a field's values are found elsewhere in the _source: - For a multi-field, the source path is the parent field. - One field's content could have been copied to another through copy_to.- Parameters:
field
- The field for which to look up the _source path. Note that the field should be a concrete field and *not* an alias.- Returns:
- A set of paths in the _source that contain the field's values.
-
hasMappings
public boolean hasMappings()Returns true if the index has mappings. An index does not have mappings only if it was created without providing mappings explicitly, and no documents have yet been indexed in it.- Returns:
- true if the current index has mappings, false otherwise
-
isSourceEnabled
public boolean isSourceEnabled() -
cacheKey
Key for the lookup to be used in caches. -
getType
-
getMapping
Returns the mapping source that this lookup originated from- Returns:
- the mapping source
-
getNestedMappers
Returns all nested object mappers -
getNestedParentMappers
Returns all nested object mappers which contain further nested object mappers Used by BitSetProducerWarmer -
getNestedParent
Given a nested object path, returns the path to its nested parent In particular, if a nested field `foo` contains an object field `bar.baz`, then calling this method with `foo.bar.baz` will return the path `foo`, skipping over the object-but-not-nested `foo.bar`
-