public final class ParentJoinFieldMapper
extends org.elasticsearch.index.mapper.FieldMapper
FieldMapper
that 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 the MetaJoinFieldMapper
which 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.Modifier and Type | Class | Description |
---|---|---|
static class |
ParentJoinFieldMapper.Builder |
|
static class |
ParentJoinFieldMapper.Defaults |
|
static class |
ParentJoinFieldMapper.JoinFieldType |
|
static class |
ParentJoinFieldMapper.TypeParser |
org.elasticsearch.index.mapper.FieldMapper.CopyTo, org.elasticsearch.index.mapper.FieldMapper.MultiFields
Modifier and Type | Field | Description |
---|---|---|
static java.lang.String |
CONTENT_TYPE |
|
static java.lang.String |
NAME |
Modifier | Constructor | Description |
---|---|---|
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) |
Modifier and Type | Method | Description |
---|---|---|
protected ParentJoinFieldMapper |
clone() |
|
protected java.lang.String |
contentType() |
|
protected void |
doMerge(org.elasticsearch.index.mapper.Mapper mergeWith,
boolean updateAllTypes) |
|
protected void |
doXContentBody(org.elasticsearch.common.xcontent.XContentBuilder builder,
boolean includeDefaults,
org.elasticsearch.common.xcontent.ToXContent.Params params) |
|
ParentJoinFieldMapper.JoinFieldType |
fieldType() |
|
static ParentJoinFieldMapper |
getMapper(org.elasticsearch.index.mapper.MapperService service) |
Returns the
ParentJoinFieldMapper associated with the service or null
if there is no parent-join field in this mapping. |
ParentIdFieldMapper |
getParentIdFieldMapper(java.lang.String name,
boolean isParent) |
Returns the parent Id field mapper associated with a parent
name
if isParent is true and a child name otherwise. |
boolean |
hasChild(java.lang.String name) |
Returns true if
name is a child name in the field. |
boolean |
hasParent(java.lang.String name) |
Returns true if
name is a parent name in the field. |
java.util.Iterator<org.elasticsearch.index.mapper.Mapper> |
iterator() |
|
org.elasticsearch.index.mapper.Mapper |
parse(org.elasticsearch.index.mapper.ParseContext context) |
|
protected void |
parseCreateField(org.elasticsearch.index.mapper.ParseContext context,
java.util.List<org.apache.lucene.index.IndexableField> fields) |
|
org.elasticsearch.index.mapper.FieldMapper |
updateFieldType(java.util.Map<java.lang.String,org.elasticsearch.index.mapper.MappedFieldType> fullNameToFieldType) |
copyTo, createFieldNamesField, doXContentAnalyzers, doXContentDocValues, indexOptionToString, indexTokenizeOption, merge, name, termVectorOptionsToString, toXContent
public static final java.lang.String NAME
public static final java.lang.String CONTENT_TYPE
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)
public static ParentJoinFieldMapper getMapper(org.elasticsearch.index.mapper.MapperService service)
ParentJoinFieldMapper
associated with the service
or null
if there is no parent-join field in this mapping.protected java.lang.String contentType()
contentType
in class org.elasticsearch.index.mapper.FieldMapper
protected ParentJoinFieldMapper clone()
clone
in class org.elasticsearch.index.mapper.FieldMapper
public ParentJoinFieldMapper.JoinFieldType fieldType()
fieldType
in class org.elasticsearch.index.mapper.FieldMapper
public java.util.Iterator<org.elasticsearch.index.mapper.Mapper> iterator()
iterator
in class org.elasticsearch.index.mapper.FieldMapper
public boolean hasParent(java.lang.String name)
name
is a parent name in the field.public boolean hasChild(java.lang.String name)
name
is a child name in the field.public ParentIdFieldMapper getParentIdFieldMapper(java.lang.String name, boolean isParent)
name
if isParent
is true and a child name
otherwise.protected void doMerge(org.elasticsearch.index.mapper.Mapper mergeWith, boolean updateAllTypes)
doMerge
in class org.elasticsearch.index.mapper.FieldMapper
public org.elasticsearch.index.mapper.FieldMapper updateFieldType(java.util.Map<java.lang.String,org.elasticsearch.index.mapper.MappedFieldType> fullNameToFieldType)
updateFieldType
in class org.elasticsearch.index.mapper.FieldMapper
protected void parseCreateField(org.elasticsearch.index.mapper.ParseContext context, java.util.List<org.apache.lucene.index.IndexableField> fields) throws java.io.IOException
parseCreateField
in class org.elasticsearch.index.mapper.FieldMapper
java.io.IOException
public org.elasticsearch.index.mapper.Mapper parse(org.elasticsearch.index.mapper.ParseContext context) throws java.io.IOException
parse
in class org.elasticsearch.index.mapper.FieldMapper
java.io.IOException
protected void doXContentBody(org.elasticsearch.common.xcontent.XContentBuilder builder, boolean includeDefaults, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException
doXContentBody
in class org.elasticsearch.index.mapper.FieldMapper
java.io.IOException