mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-25 01:19:02 +00:00
Merge pull request #15480 from jpountz/fix/mapping_explicit_defaults
Make mapping serialization more robust.
This commit is contained in:
commit
6ccc759691
@ -64,10 +64,10 @@ public abstract class FieldMapper extends Mapper implements Cloneable {
|
||||
protected final MultiFields.Builder multiFieldsBuilder;
|
||||
protected CopyTo copyTo;
|
||||
|
||||
protected Builder(String name, MappedFieldType fieldType) {
|
||||
protected Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) {
|
||||
super(name);
|
||||
this.fieldType = fieldType.clone();
|
||||
this.defaultFieldType = fieldType.clone();
|
||||
this.defaultFieldType = defaultFieldType.clone();
|
||||
this.defaultOptions = fieldType.indexOptions(); // we have to store it the fieldType is mutable
|
||||
multiFieldsBuilder = new MultiFields.Builder();
|
||||
}
|
||||
|
@ -51,8 +51,8 @@ public abstract class MetadataFieldMapper extends FieldMapper {
|
||||
}
|
||||
|
||||
public abstract static class Builder<T extends Builder, Y extends MetadataFieldMapper> extends FieldMapper.Builder<T, Y> {
|
||||
public Builder(String name, MappedFieldType fieldType) {
|
||||
super(name, fieldType);
|
||||
public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) {
|
||||
super(name, fieldType, defaultFieldType);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ public class BinaryFieldMapper extends FieldMapper {
|
||||
public static class Builder extends FieldMapper.Builder<Builder, BinaryFieldMapper> {
|
||||
|
||||
public Builder(String name) {
|
||||
super(name, Defaults.FIELD_TYPE);
|
||||
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
builder = this;
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ public class BooleanFieldMapper extends FieldMapper {
|
||||
public static class Builder extends FieldMapper.Builder<Builder, BooleanFieldMapper> {
|
||||
|
||||
public Builder(String name) {
|
||||
super(name, Defaults.FIELD_TYPE);
|
||||
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
this.builder = this;
|
||||
}
|
||||
|
||||
|
@ -356,7 +356,7 @@ public class CompletionFieldMapper extends FieldMapper implements ArrayValueMapp
|
||||
* @param name of the completion field to build
|
||||
*/
|
||||
public Builder(String name) {
|
||||
super(name, new CompletionFieldType());
|
||||
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
builder = this;
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ public abstract class NumberFieldMapper extends FieldMapper implements AllFieldM
|
||||
private Boolean coerce;
|
||||
|
||||
public Builder(String name, MappedFieldType fieldType, int defaultPrecisionStep) {
|
||||
super(name, fieldType);
|
||||
super(name, fieldType, fieldType);
|
||||
this.fieldType.setNumericPrecisionStep(defaultPrecisionStep);
|
||||
}
|
||||
|
||||
|
@ -98,7 +98,7 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc
|
||||
protected int ignoreAbove = Defaults.IGNORE_ABOVE;
|
||||
|
||||
public Builder(String name) {
|
||||
super(name, Defaults.FIELD_TYPE);
|
||||
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
builder = this;
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ public abstract class BaseGeoPointFieldMapper extends FieldMapper implements Arr
|
||||
protected Boolean ignoreMalformed;
|
||||
|
||||
public Builder(String name, GeoPointFieldType fieldType) {
|
||||
super(name, fieldType);
|
||||
super(name, fieldType, fieldType);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -120,7 +120,7 @@ public class GeoShapeFieldMapper extends FieldMapper {
|
||||
private Boolean coerce;
|
||||
|
||||
public Builder(String name) {
|
||||
super(name, Defaults.FIELD_TYPE);
|
||||
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -101,7 +101,7 @@ public class AllFieldMapper extends MetadataFieldMapper {
|
||||
private EnabledAttributeMapper enabled = Defaults.ENABLED;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
builder = this;
|
||||
indexName = Defaults.INDEX_NAME;
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ public class FieldNamesFieldMapper extends MetadataFieldMapper {
|
||||
private boolean enabled = Defaults.ENABLED;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
indexName = Defaults.NAME;
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ public class IdFieldMapper extends MetadataFieldMapper {
|
||||
private String path = Defaults.PATH;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
indexName = Defaults.NAME;
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ public class IndexFieldMapper extends MetadataFieldMapper {
|
||||
private EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
indexName = Defaults.NAME;
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ public class ParentFieldMapper extends MetadataFieldMapper {
|
||||
private final MappedFieldType childJoinFieldType = Defaults.JOIN_FIELD_TYPE.clone();
|
||||
|
||||
public Builder(String documentType) {
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE);
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
this.indexName = name;
|
||||
this.documentType = documentType;
|
||||
builder = this;
|
||||
|
@ -77,7 +77,7 @@ public class RoutingFieldMapper extends MetadataFieldMapper {
|
||||
private String path = Defaults.PATH;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
}
|
||||
|
||||
public Builder required(boolean required) {
|
||||
|
@ -88,7 +88,7 @@ public class SourceFieldMapper extends MetadataFieldMapper {
|
||||
private String[] excludes = null;
|
||||
|
||||
public Builder() {
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE);
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
}
|
||||
|
||||
public Builder enabled(boolean enabled) {
|
||||
|
@ -78,7 +78,7 @@ public class TTLFieldMapper extends MetadataFieldMapper {
|
||||
private long defaultTTL = Defaults.DEFAULT;
|
||||
|
||||
public Builder() {
|
||||
super(Defaults.NAME, Defaults.TTL_FIELD_TYPE);
|
||||
super(Defaults.NAME, Defaults.TTL_FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
}
|
||||
|
||||
public Builder enabled(EnabledAttributeMapper enabled) {
|
||||
|
@ -96,7 +96,7 @@ public class TimestampFieldMapper extends MetadataFieldMapper {
|
||||
private Boolean ignoreMissing = null;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
if (existing != null) {
|
||||
// if there is an existing type, always use that store value (only matters for < 2.0)
|
||||
explicitStore = true;
|
||||
|
@ -80,7 +80,7 @@ public class TypeFieldMapper extends MetadataFieldMapper {
|
||||
public static class Builder extends MetadataFieldMapper.Builder<Builder, TypeFieldMapper> {
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
indexName = Defaults.NAME;
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ public class UidFieldMapper extends MetadataFieldMapper {
|
||||
public static class Builder extends MetadataFieldMapper.Builder<Builder, UidFieldMapper> {
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
|
||||
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
|
||||
indexName = Defaults.NAME;
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,7 @@ public class VersionFieldMapper extends MetadataFieldMapper {
|
||||
public static class Builder extends MetadataFieldMapper.Builder<Builder, VersionFieldMapper> {
|
||||
|
||||
public Builder() {
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE);
|
||||
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -81,7 +81,7 @@ public class ExternalMapper extends FieldMapper {
|
||||
private String mapperName;
|
||||
|
||||
public Builder(String name, String generatedValue, String mapperName) {
|
||||
super(name, new ExternalFieldType());
|
||||
super(name, new ExternalFieldType(), new ExternalFieldType());
|
||||
this.builder = this;
|
||||
this.stringBuilder = stringField(name).store(false);
|
||||
this.generatedValue = generatedValue;
|
||||
|
@ -98,7 +98,7 @@ public class ExternalMetadataMapper extends MetadataFieldMapper {
|
||||
public static class Builder extends MetadataFieldMapper.Builder<Builder, ExternalMetadataMapper> {
|
||||
|
||||
protected Builder() {
|
||||
super(CONTENT_TYPE, FIELD_TYPE);
|
||||
super(CONTENT_TYPE, FIELD_TYPE, FIELD_TYPE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -204,7 +204,7 @@ public class FieldNamesFieldMapperTests extends ESSingleNodeTestCase {
|
||||
|
||||
@Override
|
||||
public Builder<?, ?> parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException {
|
||||
return new MetadataFieldMapper.Builder<Builder, DummyMetadataFieldMapper>("_dummy", FIELD_TYPE) {
|
||||
return new MetadataFieldMapper.Builder<Builder, DummyMetadataFieldMapper>("_dummy", FIELD_TYPE, FIELD_TYPE) {
|
||||
@Override
|
||||
public DummyMetadataFieldMapper build(BuilderContext context) {
|
||||
return new DummyMetadataFieldMapper(context.indexSettings());
|
||||
|
@ -131,7 +131,7 @@ public class AttachmentMapper extends FieldMapper {
|
||||
private Mapper.Builder languageBuilder = stringField(FieldNames.LANGUAGE);
|
||||
|
||||
public Builder(String name) {
|
||||
super(name, new AttachmentFieldType());
|
||||
super(name, new AttachmentFieldType(), new AttachmentFieldType());
|
||||
this.builder = this;
|
||||
this.contentBuilder = stringField(FieldNames.CONTENT);
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ public class SizeFieldMapper extends MetadataFieldMapper {
|
||||
protected EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED;
|
||||
|
||||
public Builder(MappedFieldType existing) {
|
||||
super(NAME, existing == null ? Defaults.SIZE_FIELD_TYPE : existing);
|
||||
super(NAME, existing == null ? Defaults.SIZE_FIELD_TYPE : existing, Defaults.SIZE_FIELD_TYPE);
|
||||
builder = this;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user