java.lang.Object
org.elasticsearch.index.mapper.Mapper
org.elasticsearch.index.mapper.FieldMapper
org.elasticsearch.index.mapper.CompletionFieldMapper
- All Implemented Interfaces:
Iterable<Mapper>,ToXContent,ToXContentFragment
Mapper for completion field. The field values are indexed as a weighted FST for
fast auto-completion/search-as-you-type functionality.
Type properties:
see
Type properties:
- "analyzer": "simple", (default)
- "search_analyzer": "simple", (default)
- "preserve_separators" : true, (default)
- "preserve_position_increments" : true (default)
- "min_input_length": 50 (default)
- "contexts" : CONTEXTS
ContextMappings.load(Object) for CONTEXTSsee
parse(DocumentParserContext) for acceptable inputs for indexing
This field type constructs completion queries that are run
against the weighted FST index by the CompletionSuggester.
This field can also be extended to add search criteria to suggestions
for query-time filtering and boosting (see ContextMappings
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder forCompletionFieldMapperstatic final classstatic classstatic classNested classes/interfaces inherited from class org.elasticsearch.index.mapper.FieldMapper
FieldMapper.BuilderParams, FieldMapper.Conflicts, FieldMapper.CopyTo, FieldMapper.DimensionBuilder, FieldMapper.MergeValidator<T>, FieldMapper.MultiFields, FieldMapper.Parameter<T>, FieldMapper.Serializer<T>, FieldMapper.SerializerCheck<T>, FieldMapper.SyntheticSourceMode, FieldMapper.SyntheticSourceSupport, FieldMapper.TypeParserNested classes/interfaces inherited from class org.elasticsearch.index.mapper.Mapper
Mapper.SourceKeepModeNested classes/interfaces inherited from interface org.elasticsearch.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params -
Field Summary
FieldsFields inherited from class org.elasticsearch.index.mapper.FieldMapper
builderParams, COERCE_SETTING, deprecationLogger, IGNORE_MALFORMED_SETTING, mappedFieldTypeFields inherited from class org.elasticsearch.index.mapper.Mapper
SYNTHETIC_SOURCE_KEEP_FEATURE, SYNTHETIC_SOURCE_KEEP_INDEX_SETTING, SYNTHETIC_SOURCE_KEEP_PARAMFields inherited from interface org.elasticsearch.xcontent.ToXContent
EMPTY, EMPTY_PARAMS -
Constructor Summary
ConstructorsConstructorDescriptionCompletionFieldMapper(String simpleName, MappedFieldType mappedFieldType, FieldMapper.BuilderParams builderParams, CompletionFieldMapper.Builder builder) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringvoiddoValidate(MappingLookup mappers) Returns aFieldMapper.Builderto be used for merging and serialization Implement as follows:return new MyBuilder(simpleName()).init(this);voidparse(DocumentParserContext context) Parses and indexes inputs Parsing: Acceptable format: "STRING" - interpreted as field value (input) "ARRAY" - each element can be one of "OBJECT" (see below) "OBJECT" - { "input": STRING|ARRAY, "weight": STRING|INT, "contexts": ARRAY|OBJECT } Indexing: if context mappings are defined, delegates toContextMappings.addField(LuceneDocument, String, String, int, Map)else adds inputs as aSuggestFieldprotected voidparseCreateField(DocumentParserContext context) Parse the field value and populate the fields onDocumentParserContext.doc().booleanWhether this mapper can handle an array value during document parsing.protected booleanWhether this mapper can handle an object value during document parsing.Methods inherited from class org.elasticsearch.index.mapper.FieldMapper
checkIncomingMergeType, copyTo, doParseMultiFields, doXContentBody, executeScript, fullPath, getTotalFieldsCount, hasScript, ignoreMalformed, indexScriptValues, iterator, merge, multiFields, multiFieldsIterator, notFromDynamicTemplates, notInMultiFields, sourceKeepMode, sourcePathUsedBy, syntheticFieldLoader, syntheticSourceSupport, throwIndexingWithScriptParam, toXContent, typeName, validateMethods inherited from class org.elasticsearch.index.mapper.Mapper
freezeAndDeduplicateFieldType, getOffsetFieldName, internFieldName, leafName, supportStoringArrayOffsets, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.elasticsearch.xcontent.ToXContentFragment
isFragment
-
Field Details
-
CONTENT_TYPE
- See Also:
-
ALLOWED_CONTENT_FIELD_NAMES
-
PARSER
-
-
Constructor Details
-
CompletionFieldMapper
public CompletionFieldMapper(String simpleName, MappedFieldType mappedFieldType, FieldMapper.BuilderParams builderParams, CompletionFieldMapper.Builder builder)
-
-
Method Details
-
getMergeBuilder
Description copied from class:FieldMapperReturns aFieldMapper.Builderto be used for merging and serialization Implement as follows:return new MyBuilder(simpleName()).init(this);- Specified by:
getMergeBuilderin classFieldMapper
-
indexAnalyzers
- Overrides:
indexAnalyzersin classFieldMapper
-
fieldType
- Overrides:
fieldTypein classFieldMapper
-
parsesArrayValue
public boolean parsesArrayValue()Description copied from class:FieldMapperWhether this mapper can handle an array value during document parsing. If true, when an array is encountered during parsing, the document parser will pass the whole array to the mapper. If false, the array is split into individual values and each value is passed to the mapper for parsing.- Overrides:
parsesArrayValuein classFieldMapper
-
supportsParsingObject
protected boolean supportsParsingObject()Description copied from class:FieldMapperWhether this mapper can handle an object value during document parsing. When the subobjects property is set to false, and we encounter an object while parsing we need a way to understand if its fieldMapper is able to parse an object. If that's the case we can provide the entire object to the FieldMapper otherwise its name becomes the part of the dotted field name of each internal value.- Overrides:
supportsParsingObjectin classFieldMapper
-
parse
Parses and indexes inputs Parsing: Acceptable format: "STRING" - interpreted as field value (input) "ARRAY" - each element can be one of "OBJECT" (see below) "OBJECT" - { "input": STRING|ARRAY, "weight": STRING|INT, "contexts": ARRAY|OBJECT } Indexing: if context mappings are defined, delegates toContextMappings.addField(LuceneDocument, String, String, int, Map)else adds inputs as aSuggestField- Overrides:
parsein classFieldMapper- Throws:
IOException
-
parseCreateField
Description copied from class:FieldMapperParse the field value and populate the fields onDocumentParserContext.doc(). Implementations of this method should ensure that on failing to parse parser.currentToken() must be the current failing token- Specified by:
parseCreateFieldin classFieldMapper- Throws:
IOException
-
contentType
- Specified by:
contentTypein classFieldMapper
-
doValidate
- Overrides:
doValidatein classFieldMapper
-