Package org.elasticsearch.join.mapper
Class ParentJoinFieldMapper
- java.lang.Object
-
- org.elasticsearch.index.mapper.Mapper
-
- org.elasticsearch.index.mapper.FieldMapper
-
- org.elasticsearch.join.mapper.ParentJoinFieldMapper
-
- All Implemented Interfaces:
java.lang.Cloneable,java.lang.Iterable<org.elasticsearch.index.mapper.Mapper>,org.elasticsearch.common.xcontent.ToXContent,org.elasticsearch.common.xcontent.ToXContentFragment
public final class ParentJoinFieldMapper extends org.elasticsearch.index.mapper.FieldMapperAFieldMapperthat creates hierarchical joins (parent-join) between documents in the same index. Only one parent-join field can be defined per index. The verification of this assumption is done through theMetaJoinFieldMapperwhich declares a meta field called "_parent_join". This field is only used to ensure that there is a single parent-join field defined in the mapping and cannot be used to index or query any data.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classParentJoinFieldMapper.Builderstatic classParentJoinFieldMapper.Defaultsstatic classParentJoinFieldMapper.JoinFieldTypestatic classParentJoinFieldMapper.TypeParser-
Nested classes/interfaces inherited from class org.elasticsearch.index.mapper.FieldMapper
org.elasticsearch.index.mapper.FieldMapper.CopyTo, org.elasticsearch.index.mapper.FieldMapper.MultiFields
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCONTENT_TYPEstatic java.lang.StringNAME
-
Constructor Summary
Constructors Modifier Constructor Description protectedParentJoinFieldMapper(java.lang.String simpleName, org.elasticsearch.index.mapper.MappedFieldType fieldType, org.elasticsearch.common.settings.Settings indexSettings, MetaJoinFieldMapper uniqueFieldMapper, java.util.List<ParentIdFieldMapper> parentIdFields, boolean eagerGlobalOrdinals)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ParentJoinFieldMapperclone()protected java.lang.StringcontentType()protected voiddoMerge(org.elasticsearch.index.mapper.Mapper mergeWith, boolean updateAllTypes)protected voiddoXContentBody(org.elasticsearch.common.xcontent.XContentBuilder builder, boolean includeDefaults, org.elasticsearch.common.xcontent.ToXContent.Params params)ParentJoinFieldMapper.JoinFieldTypefieldType()static ParentJoinFieldMappergetMapper(org.elasticsearch.index.mapper.MapperService service)Returns theParentJoinFieldMapperassociated with theserviceor null if there is no parent-join field in this mapping.ParentIdFieldMappergetParentIdFieldMapper(java.lang.String name, boolean isParent)Returns the parent Id field mapper associated with a parentnameifisParentis true and a childnameotherwise.booleanhasChild(java.lang.String name)Returns true ifnameis a child name in the field.booleanhasParent(java.lang.String name)Returns true ifnameis a parent name in the field.java.util.Iterator<org.elasticsearch.index.mapper.Mapper>iterator()org.elasticsearch.index.mapper.Mapperparse(org.elasticsearch.index.mapper.ParseContext context)protected voidparseCreateField(org.elasticsearch.index.mapper.ParseContext context, java.util.List<org.apache.lucene.index.IndexableField> fields)org.elasticsearch.index.mapper.FieldMapperupdateFieldType(java.util.Map<java.lang.String,org.elasticsearch.index.mapper.MappedFieldType> fullNameToFieldType)-
Methods inherited from class org.elasticsearch.index.mapper.FieldMapper
copyTo, createFieldNamesField, doXContentAnalyzers, doXContentDocValues, indexOptionToString, merge, name, termVectorOptionsToString, toXContent, typeName
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
CONTENT_TYPE
public static final java.lang.String CONTENT_TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ParentJoinFieldMapper
protected ParentJoinFieldMapper(java.lang.String simpleName, org.elasticsearch.index.mapper.MappedFieldType fieldType, org.elasticsearch.common.settings.Settings indexSettings, MetaJoinFieldMapper uniqueFieldMapper, java.util.List<ParentIdFieldMapper> parentIdFields, boolean eagerGlobalOrdinals)
-
-
Method Detail
-
getMapper
public static ParentJoinFieldMapper getMapper(org.elasticsearch.index.mapper.MapperService service)
Returns theParentJoinFieldMapperassociated with theserviceor null if there is no parent-join field in this mapping.
-
contentType
protected java.lang.String contentType()
- Specified by:
contentTypein classorg.elasticsearch.index.mapper.FieldMapper
-
clone
protected ParentJoinFieldMapper clone()
- Overrides:
clonein classorg.elasticsearch.index.mapper.FieldMapper
-
fieldType
public ParentJoinFieldMapper.JoinFieldType fieldType()
- Overrides:
fieldTypein classorg.elasticsearch.index.mapper.FieldMapper
-
iterator
public java.util.Iterator<org.elasticsearch.index.mapper.Mapper> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<org.elasticsearch.index.mapper.Mapper>- Overrides:
iteratorin classorg.elasticsearch.index.mapper.FieldMapper
-
hasParent
public boolean hasParent(java.lang.String name)
Returns true ifnameis a parent name in the field.
-
hasChild
public boolean hasChild(java.lang.String name)
Returns true ifnameis a child name in the field.
-
getParentIdFieldMapper
public ParentIdFieldMapper getParentIdFieldMapper(java.lang.String name, boolean isParent)
Returns the parent Id field mapper associated with a parentnameifisParentis true and a childnameotherwise.
-
doMerge
protected void doMerge(org.elasticsearch.index.mapper.Mapper mergeWith, boolean updateAllTypes)- Overrides:
doMergein classorg.elasticsearch.index.mapper.FieldMapper
-
updateFieldType
public org.elasticsearch.index.mapper.FieldMapper updateFieldType(java.util.Map<java.lang.String,org.elasticsearch.index.mapper.MappedFieldType> fullNameToFieldType)
- Overrides:
updateFieldTypein classorg.elasticsearch.index.mapper.FieldMapper
-
parseCreateField
protected void parseCreateField(org.elasticsearch.index.mapper.ParseContext context, java.util.List<org.apache.lucene.index.IndexableField> fields) throws java.io.IOException- Specified by:
parseCreateFieldin classorg.elasticsearch.index.mapper.FieldMapper- Throws:
java.io.IOException
-
parse
public org.elasticsearch.index.mapper.Mapper parse(org.elasticsearch.index.mapper.ParseContext context) throws java.io.IOException- Overrides:
parsein classorg.elasticsearch.index.mapper.FieldMapper- Throws:
java.io.IOException
-
doXContentBody
protected void doXContentBody(org.elasticsearch.common.xcontent.XContentBuilder builder, boolean includeDefaults, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException- Overrides:
doXContentBodyin classorg.elasticsearch.index.mapper.FieldMapper- Throws:
java.io.IOException
-
-