From 563e70488154552816fc4b24ceeced77cbd574f0 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Mon, 13 Apr 2015 16:52:16 +0200 Subject: [PATCH] Mappings: Same code path for dynamic mappings updates and updates coming from the API. We have two completely different code paths for mappings updates, depending on whether they come from the API or are guessed based on the parsed documents. This commit makes dynamic mappings updates execute like updates from the API. The only change in behaviour is that a document that fails parsing can not modify mappings anymore (useful to prevent issues such as #9851). Other than that, this change should be fairly transparent to users but working this way opens doors to other changes such as validating dynamic mappings updates on the master node (#8688). The way it works internally is that Mapper.parse now returns a Mapper instead of being void. The returned Mapper represents a mapping update that has been performed in order to parse the document. Mappings updates are propagated recursively back to the root mapper, and once parsing is finished, we check that the mappings update can be applied, and either fail the parsing if the update cannot be merged (eg. because of a concurrent mapping update from the API) or merge the update into the mappings. However not all mappings updates can be applied recursively, `copy_to` for instance can add mappings at totally different places in the tree. Because of it I added ParseContext.rootMapperUpdates which `copy_to` fills when the field to copy data to does not exist in the mappings yet. These mappings updates are merged from the ones generated by regular parsing. One particular mapping update was the `auto_boost` setting on the `all` root mapper. Being tricky to work on, I removed it in favour of search-time checks that payloads have been indexed. One interesting side-effect of the change is that concurrency on ObjectMapper is greatly simplified since we do not have to care anymore about having concurrent dynamic mappings and API updates. --- dev-tools/create-bwc-index.py | 5 + .../common/lucene/all/AllTermQuery.java | 21 + .../index/mapper/DocumentMapper.java | 77 ++- .../elasticsearch/index/mapper/Mapper.java | 7 +- .../index/mapper/MapperParsingException.java | 18 - .../index/mapper/MapperUtils.java | 82 +++ .../index/mapper/MergeContext.java | 28 +- .../index/mapper/ParseContext.java | 103 ++-- .../mapper/StrictDynamicMappingException.java | 4 +- .../mapper/core/AbstractFieldMapper.java | 81 ++- .../mapper/core/CompletionFieldMapper.java | 3 +- .../index/mapper/geo/GeoPointFieldMapper.java | 3 +- .../index/mapper/geo/GeoShapeFieldMapper.java | 7 +- .../index/mapper/internal/AllFieldMapper.java | 45 +- .../internal/FieldNamesFieldMapper.java | 3 +- .../index/mapper/internal/IdFieldMapper.java | 9 +- .../mapper/internal/IndexFieldMapper.java | 4 +- .../mapper/internal/RoutingFieldMapper.java | 3 +- .../mapper/internal/SizeFieldMapper.java | 3 +- .../mapper/internal/SourceFieldMapper.java | 3 +- .../index/mapper/internal/TTLFieldMapper.java | 3 +- .../mapper/internal/TimestampFieldMapper.java | 3 +- .../mapper/internal/TypeFieldMapper.java | 3 +- .../index/mapper/internal/UidFieldMapper.java | 3 +- .../mapper/internal/VersionFieldMapper.java | 3 +- .../index/mapper/object/ObjectMapper.java | 523 +++++++++--------- .../index/mapper/object/RootObjectMapper.java | 11 +- .../elasticsearch/index/shard/IndexShard.java | 4 +- .../mapper/all/SimpleAllMapperTests.java | 56 +- .../mapper/dynamic/DynamicMappingTests.java | 202 ++++++- .../mapper/externalvalues/ExternalMapper.java | 3 +- .../externalvalues/ExternalRootMapper.java | 3 +- .../update/UpdateMappingOnClusterTests.java | 2 +- .../update/all_mapping_create_index.json | 3 +- .../all_mapping_update_with_conflicts.json | 3 +- .../test/ElasticsearchIntegrationTest.java | 5 - .../elasticsearch/bwcompat/index-1.5.0.zip | Bin 93529 -> 91232 bytes .../org/elasticsearch/bwcompat/repo-1.5.0.zip | Bin 87515 -> 86345 bytes 38 files changed, 804 insertions(+), 535 deletions(-) create mode 100644 src/main/java/org/elasticsearch/index/mapper/MapperUtils.java diff --git a/dev-tools/create-bwc-index.py b/dev-tools/create-bwc-index.py index 6cdf9b36fa3..1dd295fe1db 100644 --- a/dev-tools/create-bwc-index.py +++ b/dev-tools/create-bwc-index.py @@ -226,6 +226,11 @@ def generate_index(client, version, index_name): } } } + mappings['auto_boost'] = { + '_all': { + 'auto_boost': True + } + } client.indices.create(index=index_name, body={ 'settings': { diff --git a/src/main/java/org/elasticsearch/common/lucene/all/AllTermQuery.java b/src/main/java/org/elasticsearch/common/lucene/all/AllTermQuery.java index 70e2b5039b6..92e4048e962 100644 --- a/src/main/java/org/elasticsearch/common/lucene/all/AllTermQuery.java +++ b/src/main/java/org/elasticsearch/common/lucene/all/AllTermQuery.java @@ -19,11 +19,14 @@ package org.elasticsearch.common.lucene.all; +import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.PostingsEnum; import org.apache.lucene.index.Term; import org.apache.lucene.index.Terms; import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.payloads.AveragePayloadFunction; import org.apache.lucene.search.payloads.PayloadTermQuery; import org.apache.lucene.search.similarities.Similarity; @@ -119,4 +122,22 @@ public final class AllTermQuery extends PayloadTermQuery { return true; } + @Override + public Query rewrite(IndexReader reader) throws IOException { + boolean hasPayloads = false; + for (LeafReaderContext context : reader.leaves()) { + final Terms terms = context.reader().terms(term.field()); + if (terms.hasPayloads()) { + hasPayloads = true; + break; + } + } + if (hasPayloads == false) { + TermQuery rewritten = new TermQuery(term); + rewritten.setBoost(getBoost()); + return rewritten; + } + return this; + } + } diff --git a/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java b/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java index f1693fec303..112e68e49bd 100644 --- a/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java @@ -22,6 +22,7 @@ package org.elasticsearch.index.mapper; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import com.google.common.collect.Sets; + import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.IndexableField; @@ -33,6 +34,7 @@ import org.elasticsearch.ElasticsearchGenerationException; import org.elasticsearch.ElasticsearchIllegalArgumentException; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Preconditions; +import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.collect.MapBuilder; import org.elasticsearch.common.compress.CompressedString; @@ -70,6 +72,7 @@ import org.elasticsearch.script.ScriptService.ScriptType; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -438,10 +441,11 @@ public class DocumentMapper implements ToXContent { ParseContext.InternalParseContext context = cache.get(); if (source.type() != null && !source.type().equals(this.type)) { - throw new MapperParsingException("Type mismatch, provide type [" + source.type() + "] but mapper is of type [" + this.type + "]", context.mappingsModified()); + throw new MapperParsingException("Type mismatch, provide type [" + source.type() + "] but mapper is of type [" + this.type + "]"); } source.type(this.type); + boolean mappingsModified = false; XContentParser parser = source.parser(); try { if (parser == null) { @@ -456,7 +460,7 @@ public class DocumentMapper implements ToXContent { int countDownTokens = 0; XContentParser.Token token = parser.nextToken(); if (token != XContentParser.Token.START_OBJECT) { - throw new MapperParsingException("Malformed content, must start with an object", context.mappingsModified()); + throw new MapperParsingException("Malformed content, must start with an object"); } boolean emptyDoc = false; token = parser.nextToken(); @@ -464,7 +468,7 @@ public class DocumentMapper implements ToXContent { // empty doc, we can handle it... emptyDoc = true; } else if (token != XContentParser.Token.FIELD_NAME) { - throw new MapperParsingException("Malformed content, after first object, either the type field or the actual properties should exist", context.mappingsModified()); + throw new MapperParsingException("Malformed content, after first object, either the type field or the actual properties should exist"); } for (RootMapper rootMapper : rootMappersOrdered) { @@ -472,7 +476,31 @@ public class DocumentMapper implements ToXContent { } if (!emptyDoc) { - rootObjectMapper.parse(context); + Mapper update = rootObjectMapper.parse(context); + for (RootObjectMapper mapper : context.updates()) { + if (update == null) { + update = mapper; + } else { + MapperUtils.merge(update, mapper); + } + } + if (update != null) { + // TODO: validate the mapping update on the master node + // lock to avoid concurrency issues with mapping updates coming from the API + synchronized(this) { + // simulate on the first time to check if the mapping update is applicable + MergeContext mergeContext = newMmergeContext(new MergeFlags().simulate(true)); + rootObjectMapper.merge(update, mergeContext); + if (mergeContext.hasConflicts()) { + throw new MapperParsingException("Could not apply generated dynamic mappings: " + Arrays.toString(mergeContext.buildConflicts())); + } else { + // then apply it for real + mappingsModified = true; + mergeContext = newMmergeContext(new MergeFlags().simulate(false)); + rootObjectMapper.merge(update, mergeContext); + } + } + } } for (int i = 0; i < countDownTokens; i++) { @@ -490,10 +518,10 @@ public class DocumentMapper implements ToXContent { // Throw a more meaningful message if the document is empty. if (source.source() != null && source.source().length() == 0) { - throw new MapperParsingException("failed to parse, document is empty", context.mappingsModified()); + throw new MapperParsingException("failed to parse, document is empty"); } - throw new MapperParsingException("failed to parse", e, context.mappingsModified()); + throw new MapperParsingException("failed to parse", e); } finally { // only close the parser when its not provided externally if (source.parser() == null && parser != null) { @@ -521,7 +549,7 @@ public class DocumentMapper implements ToXContent { } ParsedDocument doc = new ParsedDocument(context.uid(), context.version(), context.id(), context.type(), source.routing(), source.timestamp(), source.ttl(), context.docs(), - context.source(), context.mappingsModified()).parent(source.parent()); + context.source(), mappingsModified).parent(source.parent()); // reset the context to free up memory context.reset(null, null, null, null); return doc; @@ -637,8 +665,41 @@ public class DocumentMapper implements ToXContent { rootObjectMapper.traverse(listener); } + private MergeContext newMmergeContext(MergeFlags mergeFlags) { + return new MergeContext(mergeFlags) { + + List conflicts = new ArrayList<>(); + + @Override + public void addFieldMappers(List> fieldMappers) { + DocumentMapper.this.addFieldMappers(fieldMappers); + } + + @Override + public void addObjectMappers(Collection objectMappers) { + DocumentMapper.this.addObjectMappers(objectMappers); + } + + @Override + public void addConflict(String mergeFailure) { + conflicts.add(mergeFailure); + } + + @Override + public boolean hasConflicts() { + return conflicts.isEmpty() == false; + } + + @Override + public String[] buildConflicts() { + return conflicts.toArray(Strings.EMPTY_ARRAY); + } + + }; + } + public synchronized MergeResult merge(DocumentMapper mergeWith, MergeFlags mergeFlags) { - MergeContext mergeContext = new MergeContext(this, mergeFlags); + final MergeContext mergeContext = newMmergeContext(mergeFlags); assert rootMappers.size() == mergeWith.rootMappers.size(); rootObjectMapper.merge(mergeWith.rootObjectMapper, mergeContext); diff --git a/src/main/java/org/elasticsearch/index/mapper/Mapper.java b/src/main/java/org/elasticsearch/index/mapper/Mapper.java index 151940b6c30..ae2f6acbf2d 100644 --- a/src/main/java/org/elasticsearch/index/mapper/Mapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/Mapper.java @@ -125,7 +125,12 @@ public interface Mapper extends ToXContent { String name(); - void parse(ParseContext context) throws IOException; + /** + * Parse using the provided {@link ParseContext} and return a mapping + * update if dynamic mappings modified the mappings, or {@code null} if + * mappings were not modified. + */ + Mapper parse(ParseContext context) throws IOException; void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException; diff --git a/src/main/java/org/elasticsearch/index/mapper/MapperParsingException.java b/src/main/java/org/elasticsearch/index/mapper/MapperParsingException.java index 9cac8a26ef9..25a7e1f9233 100644 --- a/src/main/java/org/elasticsearch/index/mapper/MapperParsingException.java +++ b/src/main/java/org/elasticsearch/index/mapper/MapperParsingException.java @@ -28,28 +28,10 @@ public class MapperParsingException extends MapperException { public MapperParsingException(String message) { super(message); - mappingsModified = false; - } - - public boolean isMappingsModified() { - return mappingsModified; - } - - private boolean mappingsModified = false; - - public MapperParsingException(String message, boolean mappingsModified) { - super(message); - this.mappingsModified = mappingsModified; - } - - public MapperParsingException(String message, Throwable cause, boolean mappingsModified) { - super(message, cause); - this.mappingsModified = mappingsModified; } public MapperParsingException(String message, Throwable cause) { super(message, cause); - this.mappingsModified = false; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/MapperUtils.java b/src/main/java/org/elasticsearch/index/mapper/MapperUtils.java new file mode 100644 index 00000000000..be4915b8392 --- /dev/null +++ b/src/main/java/org/elasticsearch/index/mapper/MapperUtils.java @@ -0,0 +1,82 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper; + +import org.elasticsearch.ElasticsearchIllegalStateException; +import org.elasticsearch.common.Strings; +import org.elasticsearch.index.mapper.object.ObjectMapper; +import org.elasticsearch.index.mapper.object.RootObjectMapper; + +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +public enum MapperUtils { + ; + + /** + * Parse the given {@code context} with the given {@code mapper} and apply + * the potential mapping update in-place. This method is useful when + * composing mapping updates. + */ + public static M parseAndMergeUpdate(M mapper, ParseContext context) throws IOException { + final Mapper update = mapper.parse(context); + if (update != null) { + merge(mapper, update); + } + return mapper; + } + + /** + * Merge {@code mergeWith} into {@code mergeTo}. Note: this method only + * merges mappings, not lookup structures. Conflicts are returned as exceptions. + */ + public static void merge(Mapper mergeInto, Mapper mergeWith) { + MergeContext ctx = new MergeContext(new DocumentMapper.MergeFlags().simulate(false)) { + + @Override + public boolean hasConflicts() { + return false; + } + + @Override + public String[] buildConflicts() { + return Strings.EMPTY_ARRAY; + } + + @Override + public void addObjectMappers(Collection objectMappers) { + // no-op + } + + @Override + public void addFieldMappers(List> fieldMappers) { + // no-op + } + + @Override + public void addConflict(String mergeFailure) { + throw new ElasticsearchIllegalStateException("Merging dynamic updates triggered a conflict: " + mergeFailure); + } + }; + mergeInto.merge(mergeWith, ctx); + } + +} diff --git a/src/main/java/org/elasticsearch/index/mapper/MergeContext.java b/src/main/java/org/elasticsearch/index/mapper/MergeContext.java index 4c250c242f1..f8ddb837517 100644 --- a/src/main/java/org/elasticsearch/index/mapper/MergeContext.java +++ b/src/main/java/org/elasticsearch/index/mapper/MergeContext.java @@ -19,41 +19,33 @@ package org.elasticsearch.index.mapper; -import com.google.common.collect.Lists; +import org.elasticsearch.index.mapper.object.ObjectMapper; +import java.util.Collection; import java.util.List; /** * */ -public class MergeContext { +public abstract class MergeContext { - private final DocumentMapper documentMapper; private final DocumentMapper.MergeFlags mergeFlags; - private final List mergeConflicts = Lists.newArrayList(); - public MergeContext(DocumentMapper documentMapper, DocumentMapper.MergeFlags mergeFlags) { - this.documentMapper = documentMapper; + public MergeContext(DocumentMapper.MergeFlags mergeFlags) { this.mergeFlags = mergeFlags; } - public DocumentMapper docMapper() { - return documentMapper; - } + public abstract void addFieldMappers(List> fieldMappers); + + public abstract void addObjectMappers(Collection objectMappers); public DocumentMapper.MergeFlags mergeFlags() { return mergeFlags; } - public void addConflict(String mergeFailure) { - mergeConflicts.add(mergeFailure); - } + public abstract void addConflict(String mergeFailure); - public boolean hasConflicts() { - return !mergeConflicts.isEmpty(); - } + public abstract boolean hasConflicts(); - public String[] buildConflicts() { - return mergeConflicts.toArray(new String[mergeConflicts.size()]); - } + public abstract String[] buildConflicts(); } diff --git a/src/main/java/org/elasticsearch/index/mapper/ParseContext.java b/src/main/java/org/elasticsearch/index/mapper/ParseContext.java index 9f50a7df045..7cf3d97938b 100644 --- a/src/main/java/org/elasticsearch/index/mapper/ParseContext.java +++ b/src/main/java/org/elasticsearch/index/mapper/ParseContext.java @@ -22,7 +22,7 @@ package org.elasticsearch.index.mapper; import com.carrotsearch.hppc.ObjectObjectMap; import com.carrotsearch.hppc.ObjectObjectOpenHashMap; import com.google.common.collect.Lists; -import org.apache.lucene.analysis.Analyzer; + import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.IndexableField; @@ -38,7 +38,11 @@ import org.elasticsearch.index.analysis.AnalysisService; import org.elasticsearch.index.mapper.DocumentMapper.ParseListener; import org.elasticsearch.index.mapper.object.RootObjectMapper; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * @@ -194,31 +198,6 @@ public abstract class ParseContext { return in.docMapperParser(); } - @Override - public boolean mappingsModified() { - return in.mappingsModified(); - } - - @Override - public void setMappingsModified() { - in.setMappingsModified(); - } - - @Override - public void setWithinNewMapper() { - in.setWithinNewMapper(); - } - - @Override - public void clearWithinNewMapper() { - in.clearWithinNewMapper(); - } - - @Override - public boolean isWithinNewMapper() { - return in.isWithinNewMapper(); - } - @Override public boolean isWithinCopyTo() { return in.isWithinCopyTo(); @@ -379,6 +358,15 @@ public abstract class ParseContext { return in.stringBuilder(); } + @Override + public void addRootObjectUpdate(RootObjectMapper update) { + in.addRootObjectUpdate(update); + } + + @Override + public List updates() { + return in.updates(); + } } public static class InternalParseContext extends ParseContext { @@ -414,12 +402,13 @@ public abstract class ParseContext { private Map ignoredValues = new HashMap<>(); private boolean mappingsModified = false; - private boolean withinNewMapper = false; private AllEntries allEntries = new AllEntries(); private float docBoost = 1.0f; + private final List rootMapperDynamicUpdates = new ArrayList<>(); + public InternalParseContext(String index, @Nullable Settings indexSettings, DocumentMapperParser docMapperParser, DocumentMapper docMapper, ContentPath path) { this.index = index; this.indexSettings = indexSettings; @@ -444,11 +433,11 @@ public abstract class ParseContext { this.source = source == null ? null : sourceToParse.source(); this.path.reset(); this.mappingsModified = false; - this.withinNewMapper = false; this.listener = listener == null ? DocumentMapper.ParseListener.EMPTY : listener; this.allEntries = new AllEntries(); this.ignoredValues.clear(); this.docBoost = 1.0f; + this.rootMapperDynamicUpdates.clear(); } @Override @@ -461,31 +450,6 @@ public abstract class ParseContext { return this.docMapperParser; } - @Override - public boolean mappingsModified() { - return this.mappingsModified; - } - - @Override - public void setMappingsModified() { - this.mappingsModified = true; - } - - @Override - public void setWithinNewMapper() { - this.withinNewMapper = true; - } - - @Override - public void clearWithinNewMapper() { - this.withinNewMapper = false; - } - - @Override - public boolean isWithinNewMapper() { - return withinNewMapper; - } - @Override public String index() { return this.index; @@ -638,22 +602,22 @@ public abstract class ParseContext { stringBuilder.setLength(0); return this.stringBuilder; } + + @Override + public void addRootObjectUpdate(RootObjectMapper mapper) { + rootMapperDynamicUpdates.add(mapper); + } + + @Override + public List updates() { + return rootMapperDynamicUpdates; + } } public abstract boolean flyweight(); public abstract DocumentMapperParser docMapperParser(); - public abstract boolean mappingsModified(); - - public abstract void setMappingsModified(); - - public abstract void setWithinNewMapper(); - - public abstract void clearWithinNewMapper(); - - public abstract boolean isWithinNewMapper(); - /** * Return a new context that will be within a copy-to operation. */ @@ -854,4 +818,15 @@ public abstract class ParseContext { */ public abstract StringBuilder stringBuilder(); + /** + * Add a dynamic update to the root object mapper. + * TODO: can we nuke it, it is only needed for copy_to + */ + public abstract void addRootObjectUpdate(RootObjectMapper update); + + /** + * Get dynamic updates to the root object mapper. + * TODO: can we nuke it, it is only needed for copy_to + */ + public abstract List updates(); } diff --git a/src/main/java/org/elasticsearch/index/mapper/StrictDynamicMappingException.java b/src/main/java/org/elasticsearch/index/mapper/StrictDynamicMappingException.java index 098d5abf086..f675396369b 100644 --- a/src/main/java/org/elasticsearch/index/mapper/StrictDynamicMappingException.java +++ b/src/main/java/org/elasticsearch/index/mapper/StrictDynamicMappingException.java @@ -24,8 +24,8 @@ import org.elasticsearch.rest.RestStatus; */ public class StrictDynamicMappingException extends MapperParsingException { - public StrictDynamicMappingException(String path, String fieldName, boolean mappingsModified) { - super("mapping set to strict, dynamic introduction of [" + fieldName + "] within [" + path + "] is not allowed", mappingsModified); + public StrictDynamicMappingException(String path, String fieldName) { + super("mapping set to strict, dynamic introduction of [" + fieldName + "] within [" + path + "] is not allowed"); } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java index b68be28e2f1..2e7328c2907 100644 --- a/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java @@ -44,6 +44,7 @@ import org.apache.lucene.search.TermRangeFilter; import org.apache.lucene.search.TermRangeQuery; import org.apache.lucene.util.BytesRef; import org.elasticsearch.ElasticsearchIllegalArgumentException; +import org.elasticsearch.ElasticsearchIllegalStateException; import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.collect.ImmutableOpenMap; @@ -70,6 +71,7 @@ import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.internal.AllFieldMapper; import org.elasticsearch.index.mapper.object.ObjectMapper; +import org.elasticsearch.index.mapper.object.RootObjectMapper; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.search.FieldDataTermsFilter; import org.elasticsearch.index.similarity.SimilarityLookupService; @@ -81,7 +83,6 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.TreeMap; /** @@ -434,7 +435,7 @@ public abstract class AbstractFieldMapper implements FieldMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { final List fields = new ArrayList<>(2); try { parseCreateField(context, fields); @@ -447,12 +448,13 @@ public abstract class AbstractFieldMapper implements FieldMapper { } } } catch (Exception e) { - throw new MapperParsingException("failed to parse [" + names.fullName() + "]", e, context.mappingsModified()); + throw new MapperParsingException("failed to parse [" + names.fullName() + "]", e); } multiFields.parse(this, context); if (copyTo != null) { copyTo.parse(context); } + return null; } /** @@ -968,7 +970,7 @@ public abstract class AbstractFieldMapper implements FieldMapper { // first add all field mappers if (newFieldMappers != null) { - mergeContext.docMapper().addFieldMappers(newFieldMappers); + mergeContext.addFieldMappers(newFieldMappers); } // now publish mappers if (newMappersBuilder != null) { @@ -1089,54 +1091,41 @@ public abstract class AbstractFieldMapper implements FieldMapper { // The path of the dest field might be completely different from the current one so we need to reset it context = context.overridePath(new ContentPath(0)); + ObjectMapper mapper = context.root(); + String objectPath = ""; + String fieldPath = field; int posDot = field.lastIndexOf('.'); if (posDot > 0) { - // Compound name - String objectPath = field.substring(0, posDot); - String fieldPath = field.substring(posDot + 1); - ObjectMapper mapper = context.docMapper().objectMappers().get(objectPath); - if (mapper == null) { - //TODO: Create an object dynamically? - throw new MapperParsingException("attempt to copy value to non-existing object [" + field + "]", context.mappingsModified()); - } - + objectPath = field.substring(0, posDot); context.path().add(objectPath); - - // We might be in dynamically created field already, so need to clean withinNewMapper flag - // and then restore it, so we wouldn't miss new mappers created from copy_to fields - boolean origWithinNewMapper = context.isWithinNewMapper(); - context.clearWithinNewMapper(); - - try { - mapper.parseDynamicValue(context, fieldPath, context.parser().currentToken()); - } finally { - if (origWithinNewMapper) { - context.setWithinNewMapper(); - } else { - context.clearWithinNewMapper(); - } - } - - } else { - // We might be in dynamically created field already, so need to clean withinNewMapper flag - // and then restore it, so we wouldn't miss new mappers created from copy_to fields - boolean origWithinNewMapper = context.isWithinNewMapper(); - context.clearWithinNewMapper(); - try { - context.docMapper().root().parseDynamicValue(context, field, context.parser().currentToken()); - } finally { - if (origWithinNewMapper) { - context.setWithinNewMapper(); - } else { - context.clearWithinNewMapper(); - } - } - + mapper = context.docMapper().objectMappers().get(objectPath); + fieldPath = field.substring(posDot + 1); } + if (mapper == null) { + //TODO: Create an object dynamically? + throw new MapperParsingException("attempt to copy value to non-existing object [" + field + "]"); + } + ObjectMapper update = mapper.parseDynamicValue(context, fieldPath, context.parser().currentToken()); + assert update != null; // we are parsing a dynamic value so we necessarily created a new mapping + + // propagate the update to the root + while (objectPath.length() > 0) { + String parentPath = ""; + ObjectMapper parent = context.root(); + posDot = objectPath.lastIndexOf('.'); + if (posDot > 0) { + parentPath = objectPath.substring(0, posDot); + parent = context.docMapper().objectMappers().get(parentPath); + } + if (parent == null) { + throw new ElasticsearchIllegalStateException("[" + objectPath + "] has no parent for path [" + parentPath + "]"); + } + update = parent.mappingUpdate(update); + objectPath = parentPath; + } + context.addRootObjectUpdate((RootObjectMapper) update); } } - - } /** diff --git a/src/main/java/org/elasticsearch/index/mapper/core/CompletionFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/core/CompletionFieldMapper.java index 03792a11bd3..7e037bd533c 100644 --- a/src/main/java/org/elasticsearch/index/mapper/core/CompletionFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/core/CompletionFieldMapper.java @@ -266,7 +266,7 @@ public class CompletionFieldMapper extends AbstractFieldMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { XContentParser parser = context.parser(); XContentParser.Token token = parser.currentToken(); @@ -382,6 +382,7 @@ public class CompletionFieldMapper extends AbstractFieldMapper { context.doc().add(getCompletionField(ctx, input, suggestPayload)); } } + return null; } private void checkWeight(long weight) { diff --git a/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java index 8d2460bffdd..f7a39b2c952 100644 --- a/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java @@ -515,7 +515,7 @@ public class GeoPointFieldMapper extends AbstractFieldMapper implement } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { ContentPath.Type origPathType = context.path().pathType(); context.path().pathType(pathType); context.path().add(name()); @@ -565,6 +565,7 @@ public class GeoPointFieldMapper extends AbstractFieldMapper implement context.path().remove(); context.path().pathType(origPathType); + return null; } private void parseGeohashField(ParseContext context, String geohash) throws IOException { diff --git a/src/main/java/org/elasticsearch/index/mapper/geo/GeoShapeFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/geo/GeoShapeFieldMapper.java index a96a84550f7..896185f39f6 100644 --- a/src/main/java/org/elasticsearch/index/mapper/geo/GeoShapeFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/geo/GeoShapeFieldMapper.java @@ -237,19 +237,19 @@ public class GeoShapeFieldMapper extends AbstractFieldMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { try { Shape shape = context.parseExternalValue(Shape.class); if (shape == null) { ShapeBuilder shapeBuilder = ShapeBuilder.parse(context.parser(), this); if (shapeBuilder == null) { - return; + return null; } shape = shapeBuilder.build(); } Field[] fields = defaultStrategy.createIndexableFields(shape); if (fields == null || fields.length == 0) { - return; + return null; } for (Field field : fields) { if (!customBoost()) { @@ -262,6 +262,7 @@ public class GeoShapeFieldMapper extends AbstractFieldMapper { } catch (Exception e) { throw new MapperParsingException("failed to parse [" + names.fullName() + "]", e); } + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java index 98e64ccddae..7fd2d5859ea 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java @@ -25,7 +25,6 @@ import org.apache.lucene.document.FieldType; import org.apache.lucene.index.IndexOptions; import org.apache.lucene.index.Term; import org.apache.lucene.search.Query; -import org.apache.lucene.search.TermQuery; import org.elasticsearch.Version; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Strings; @@ -33,9 +32,7 @@ import org.elasticsearch.common.io.stream.BytesStreamOutput; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.lucene.all.AllField; import org.elasticsearch.common.lucene.all.AllTermQuery; -import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.settings.loader.SettingsLoader; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.fielddata.FieldDataType; @@ -97,9 +94,6 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter private EnabledAttributeMapper enabled = Defaults.ENABLED; - // an internal flag, automatically set if we encounter boosting - boolean autoBoost = false; - public Builder() { super(Defaults.NAME, new FieldType(Defaults.FIELD_TYPE)); builder = this; @@ -120,7 +114,7 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter } fieldType.setTokenized(true); - return new AllFieldMapper(name, fieldType, indexAnalyzer, searchAnalyzer, enabled, autoBoost, similarity, normsLoading, fieldDataSettings, context.indexSettings()); + return new AllFieldMapper(name, fieldType, indexAnalyzer, searchAnalyzer, enabled, similarity, normsLoading, fieldDataSettings, context.indexSettings()); } } @@ -154,8 +148,8 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter if (fieldName.equals("enabled")) { builder.enabled(nodeBooleanValue(fieldNode) ? EnabledAttributeMapper.ENABLED : EnabledAttributeMapper.DISABLED); iterator.remove(); - } else if (fieldName.equals("auto_boost")) { - builder.autoBoost = nodeBooleanValue(fieldNode); + } else if (fieldName.equals("auto_boost") && parserContext.indexVersionCreated().before(Version.V_2_0_0)) { + // Old 1.x setting which is now ignored iterator.remove(); } } @@ -165,24 +159,17 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter private EnabledAttributeMapper enabledState; - // The autoBoost flag is automatically set based on indexed docs on the mappings - // if a doc is indexed with a specific boost value and part of _all, it is automatically - // set to true. This allows to optimize (automatically, which we like) for the common case - // where fields don't usually have boost associated with them, and we don't need to use the - // special SpanTermQuery to look at payloads - private volatile boolean autoBoost; public AllFieldMapper(Settings indexSettings) { - this(Defaults.NAME, new FieldType(Defaults.FIELD_TYPE), null, null, Defaults.ENABLED, false, null, null, null, indexSettings); + this(Defaults.NAME, new FieldType(Defaults.FIELD_TYPE), null, null, Defaults.ENABLED, null, null, null, indexSettings); } protected AllFieldMapper(String name, FieldType fieldType, NamedAnalyzer indexAnalyzer, NamedAnalyzer searchAnalyzer, - EnabledAttributeMapper enabled, boolean autoBoost, SimilarityProvider similarity, Loading normsLoading, + EnabledAttributeMapper enabled, SimilarityProvider similarity, Loading normsLoading, @Nullable Settings fieldDataSettings, Settings indexSettings) { super(new Names(name, name, name, name), 1.0f, fieldType, false, indexAnalyzer, searchAnalyzer, similarity, normsLoading, fieldDataSettings, indexSettings); this.enabledState = enabled; - this.autoBoost = autoBoost; } @@ -202,13 +189,7 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter @Override public Query queryStringTermQuery(Term term) { - if (!autoBoost) { - return new TermQuery(term); - } - if (fieldType.indexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0) { - return new AllTermQuery(term); - } - return new TermQuery(term); + return new AllTermQuery(term); } @Override @@ -226,8 +207,9 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // we parse in post parse + return null; } @Override @@ -242,14 +224,6 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter } // reset the entries context.allEntries().reset(); - - // if the autoBoost flag is not set, and we indexed a doc with custom boost, make - // sure to update the flag, and notify mappings on change - if (!autoBoost && context.allEntries().customBoost()) { - autoBoost = true; - context.setMappingsModified(); - } - Analyzer analyzer = findAnalyzer(context); fields.add(new AllField(names.indexName(), context.allEntries(), analyzer, fieldType)); } @@ -305,9 +279,6 @@ public class AllFieldMapper extends AbstractFieldMapper implements Inter if (includeDefaults || enabledState != Defaults.ENABLED) { builder.field("enabled", enabledState.enabled); } - if (includeDefaults || autoBoost != false) { - builder.field("auto_boost", autoBoost); - } if (includeDefaults || fieldType.stored() != Defaults.FIELD_TYPE.stored()) { builder.field("store", fieldType.stored()); } diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/FieldNamesFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/FieldNamesFieldMapper.java index b38c2186d66..33633d3c06d 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/FieldNamesFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/FieldNamesFieldMapper.java @@ -184,8 +184,9 @@ public class FieldNamesFieldMapper extends AbstractFieldMapper implement } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // we parse in post parse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java index 816bb4557c7..6556aa20bff 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java @@ -307,16 +307,11 @@ public class IdFieldMapper extends AbstractFieldMapper implements Intern @Override public void postParse(ParseContext context) throws IOException { if (context.id() == null && !context.sourceToParse().flyweight()) { - throw new MapperParsingException("No id found while parsing the content source", context.mappingsModified()); + throw new MapperParsingException("No id found while parsing the content source"); } // it either get built in the preParse phase, or get parsed... } - @Override - public void parse(ParseContext context) throws IOException { - super.parse(context); - } - @Override public boolean includeInObject() { return true; @@ -329,7 +324,7 @@ public class IdFieldMapper extends AbstractFieldMapper implements Intern // we are in the parse Phase String id = parser.text(); if (context.id() != null && !context.id().equals(id)) { - throw new MapperParsingException("Provided id [" + context.id() + "] does not match the content one [" + id + "]", context.mappingsModified()); + throw new MapperParsingException("Provided id [" + context.id() + "] does not match the content one [" + id + "]"); } context.id(id); } // else we are in the pre/post parse phase diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java index 7bbf155276d..a530102e673 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java @@ -166,8 +166,8 @@ public class IndexFieldMapper extends AbstractFieldMapper implements Int } @Override - public void parse(ParseContext context) throws IOException { - + public Mapper parse(ParseContext context) throws IOException { + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java index 1d883196189..8aee69f8ba3 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java @@ -182,10 +182,11 @@ public class RoutingFieldMapper extends AbstractFieldMapper implements I } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // no need ot parse here, we either get the routing in the sourceToParse // or we don't have routing, if we get it in sourceToParse, we process it in preParse // which will always be called + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java index b6f269d75e1..bd954a8b756 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java @@ -134,8 +134,9 @@ public class SizeFieldMapper extends IntegerFieldMapper implements RootMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // nothing to do here, we call the parent in postParse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java index 21544a9e859..3814ba41ee6 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java @@ -251,8 +251,9 @@ public class SourceFieldMapper extends AbstractFieldMapper implements In } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // nothing to do here, we will call it in pre parse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/TTLFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/TTLFieldMapper.java index 4f2c57e3e94..10a14169755 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/TTLFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/TTLFieldMapper.java @@ -175,7 +175,7 @@ public class TTLFieldMapper extends LongFieldMapper implements InternalMapper, R } @Override - public void parse(ParseContext context) throws IOException, MapperParsingException { + public Mapper parse(ParseContext context) throws IOException, MapperParsingException { if (context.sourceToParse().ttl() < 0) { // no ttl has been provided externally long ttl; if (context.parser().currentToken() == XContentParser.Token.VALUE_STRING) { @@ -188,6 +188,7 @@ public class TTLFieldMapper extends LongFieldMapper implements InternalMapper, R } context.sourceToParse().ttl(ttl); } + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/TimestampFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/TimestampFieldMapper.java index f8fa3984ef5..18075ff3866 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/TimestampFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/TimestampFieldMapper.java @@ -273,8 +273,9 @@ public class TimestampFieldMapper extends DateFieldMapper implements InternalMap } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // nothing to do here, we call the parent in preParse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java index df72d57b063..c93a1545aec 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java @@ -158,8 +158,9 @@ public class TypeFieldMapper extends AbstractFieldMapper implements Inte } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // we parse in pre parse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java index 49e6242d0df..d84835d9f3d 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java @@ -167,8 +167,9 @@ public class UidFieldMapper extends AbstractFieldMapper implements Internal } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // nothing to do here, we either do it in post parse, or in pre parse. + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/internal/VersionFieldMapper.java b/src/main/java/org/elasticsearch/index/mapper/internal/VersionFieldMapper.java index 9822e4ede05..4ae3eaa415a 100644 --- a/src/main/java/org/elasticsearch/index/mapper/internal/VersionFieldMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/internal/VersionFieldMapper.java @@ -113,8 +113,9 @@ public class VersionFieldMapper extends AbstractFieldMapper implements Int } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { // _version added in preparse + return null; } @Override diff --git a/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java b/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java index 653f9f0804a..dfc4e64b342 100644 --- a/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java @@ -20,6 +20,7 @@ package org.elasticsearch.index.mapper.object; import com.google.common.collect.Iterables; + import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexableField; import org.apache.lucene.index.Term; @@ -38,6 +39,7 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.ContentPath; +import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.DocumentMapperParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.FieldMapperListener; @@ -45,6 +47,7 @@ import org.elasticsearch.index.mapper.InternalMapper; import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperBuilders; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MapperUtils; import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; import org.elasticsearch.index.mapper.ObjectMapperListener; @@ -84,7 +87,7 @@ import static org.elasticsearch.index.mapper.core.TypeParsers.parsePathType; /** * */ -public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { +public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll, Cloneable { public static final String CONTENT_TYPE = "object"; public static final String NESTED_CONTENT_TYPE = "nested"; @@ -370,8 +373,6 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { private volatile CopyOnWriteHashMap mappers; - private final Object mutex = new Object(); - ObjectMapper(String name, String fullPath, boolean enabled, Nested nested, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { this.name = name; this.fullPath = fullPath; @@ -389,6 +390,28 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { this.nestedTypeFilter = new TermFilter(new Term(TypeFieldMapper.NAME, nestedTypePathAsBytes)); } + @Override + protected ObjectMapper clone() { + ObjectMapper clone; + try { + clone = (ObjectMapper) super.clone(); + } catch (CloneNotSupportedException e) { + throw new RuntimeException(); + } + return clone; + } + + /** + * Build a mapping update with the provided sub mapping update. + */ + public ObjectMapper mappingUpdate(Mapper mapper) { + ObjectMapper mappingUpdate = clone(); + // reset the sub mappers + mappingUpdate.mappers = new CopyOnWriteHashMap<>(); + mappingUpdate.putMapper(mapper); + return mappingUpdate; + } + @Override public String name() { return this.name; @@ -440,14 +463,16 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { return this.nestedTypeFilter; } - public ObjectMapper putMapper(Mapper mapper) { + /** + * Put a new mapper. + * NOTE: this method must be called under the current {@link DocumentMapper} + * lock if concurrent updates are expected. + */ + public void putMapper(Mapper mapper) { if (mapper instanceof AllFieldMapper.IncludeInAll) { ((AllFieldMapper.IncludeInAll) mapper).includeInAllIfNotSet(includeInAll); } - synchronized (mutex) { - mappers = mappers.copyAndPut(mapper.name(), mapper); - } - return this; + mappers = mappers.copyAndPut(mapper.name(), mapper); } @Override @@ -482,10 +507,10 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { } @Override - public void parse(ParseContext context) throws IOException { + public ObjectMapper parse(ParseContext context) throws IOException { if (!enabled) { context.parser().skipChildren(); - return; + return null; } XContentParser parser = context.parser(); @@ -493,13 +518,13 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { XContentParser.Token token = parser.currentToken(); if (token == XContentParser.Token.VALUE_NULL) { // the object is null ("obj1" : null), simply bail - return; + return null; } if (token.isValue() && !allowValue()) { // if we are parsing an object but it is just a value, its only allowed on root level parsers with there // is a field name with the same name as the type - throw new MapperParsingException("object mapping for [" + name + "] tried to parse field [" + currentFieldName + "] as object, but found a concrete value", context.mappingsModified()); + throw new MapperParsingException("object mapping for [" + name + "] tried to parse field [" + currentFieldName + "] as object, but found a concrete value"); } if (nested.isNested()) { @@ -533,21 +558,30 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { token = parser.nextToken(); } + ObjectMapper update = null; while (token != XContentParser.Token.END_OBJECT) { + ObjectMapper newUpdate = null; if (token == XContentParser.Token.START_OBJECT) { - serializeObject(context, currentFieldName); + newUpdate = serializeObject(context, currentFieldName); } else if (token == XContentParser.Token.START_ARRAY) { - serializeArray(context, currentFieldName); + newUpdate = serializeArray(context, currentFieldName); } else if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.VALUE_NULL) { serializeNullValue(context, currentFieldName); } else if (token == null) { - throw new MapperParsingException("object mapping for [" + name + "] tried to parse field [" + currentFieldName + "] as object, but got EOF, has a concrete value been provided to it?", context.mappingsModified()); + throw new MapperParsingException("object mapping for [" + name + "] tried to parse field [" + currentFieldName + "] as object, but got EOF, has a concrete value been provided to it?"); } else if (token.isValue()) { - serializeValue(context, currentFieldName, token); + newUpdate = serializeValue(context, currentFieldName, token); } token = parser.nextToken(); + if (newUpdate != null) { + if (update == null) { + update = newUpdate; + } else { + MapperUtils.merge(update, newUpdate); + } + } } // restore the enable path flag context.path().pathType(origPathType); @@ -577,6 +611,7 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { } } } + return update; } private void serializeNullValue(ParseContext context, String lastFieldName) throws IOException { @@ -585,54 +620,51 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { if (mapper != null) { if (mapper instanceof FieldMapper) { if (!((FieldMapper) mapper).supportsNullValue()) { - throw new MapperParsingException("no object mapping found for null value in [" + lastFieldName + "]", context.mappingsModified()); + throw new MapperParsingException("no object mapping found for null value in [" + lastFieldName + "]"); } } mapper.parse(context); } else if (dynamic == Dynamic.STRICT) { - throw new StrictDynamicMappingException(fullPath, lastFieldName, context.mappingsModified()); + throw new StrictDynamicMappingException(fullPath, lastFieldName); } } - private void serializeObject(final ParseContext context, String currentFieldName) throws IOException { + private ObjectMapper serializeObject(final ParseContext context, String currentFieldName) throws IOException { if (currentFieldName == null) { - throw new MapperParsingException("object mapping [" + name + "] trying to serialize an object with no field associated with it, current value [" + context.parser().textOrNull() + "]", context.mappingsModified()); + throw new MapperParsingException("object mapping [" + name + "] trying to serialize an object with no field associated with it, current value [" + context.parser().textOrNull() + "]"); } context.path().add(currentFieldName); + ObjectMapper update = null; Mapper objectMapper = mappers.get(currentFieldName); if (objectMapper != null) { - objectMapper.parse(context); + final Mapper subUpdate = objectMapper.parse(context); + if (subUpdate != null) { + // propagate mapping update + update = mappingUpdate(subUpdate); + } } else { Dynamic dynamic = this.dynamic; if (dynamic == null) { dynamic = context.root().dynamic(); } if (dynamic == Dynamic.STRICT) { - throw new StrictDynamicMappingException(fullPath, currentFieldName, context.mappingsModified()); + throw new StrictDynamicMappingException(fullPath, currentFieldName); } else if (dynamic == Dynamic.TRUE) { - // we sync here just so we won't add it twice. Its not the end of the world - // to sync here since next operations will get it before - synchronized (mutex) { - objectMapper = mappers.get(currentFieldName); - if (objectMapper == null) { - // remove the current field name from path, since template search and the object builder add it as well... - context.path().remove(); - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "object"); - if (builder == null) { - builder = MapperBuilders.object(currentFieldName).enabled(true).pathType(pathType); - // if this is a non root object, then explicitly set the dynamic behavior if set - if (!(this instanceof RootObjectMapper) && this.dynamic != Defaults.DYNAMIC) { - ((Builder) builder).dynamic(this.dynamic); - } - } - BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); - objectMapper = builder.build(builderContext); - putDynamicMapper(context, currentFieldName, objectMapper); - } else { - objectMapper.parse(context); + // remove the current field name from path, since template search and the object builder add it as well... + context.path().remove(); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "object"); + if (builder == null) { + builder = MapperBuilders.object(currentFieldName).enabled(true).pathType(pathType); + // if this is a non root object, then explicitly set the dynamic behavior if set + if (!(this instanceof RootObjectMapper) && this.dynamic != Defaults.DYNAMIC) { + ((Builder) builder).dynamic(this.dynamic); } } + BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); + objectMapper = builder.build(builderContext); + context.path().add(currentFieldName); + update = mappingUpdate(MapperUtils.parseAndMergeUpdate(objectMapper, context)); } else { // not dynamic, read everything up to end object context.parser().skipChildren(); @@ -640,9 +672,10 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { } context.path().remove(); + return update; } - private void serializeArray(ParseContext context, String lastFieldName) throws IOException { + private ObjectMapper serializeArray(ParseContext context, String lastFieldName) throws IOException { String arrayFieldName = lastFieldName; Mapper mapper = mappers.get(lastFieldName); if (mapper != null) { @@ -650,9 +683,15 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { // expects an array, if so we pass the context straight to the mapper and if not // we serialize the array components if (mapper instanceof ArrayValueMapperParser) { - mapper.parse(context); + final Mapper subUpdate = mapper.parse(context); + if (subUpdate != null) { + // propagate the mapping update + return mappingUpdate(subUpdate); + } else { + return null; + } } else { - serializeNonDynamicArray(context, lastFieldName, arrayFieldName); + return serializeNonDynamicArray(context, lastFieldName, arrayFieldName); } } else { @@ -661,278 +700,217 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { dynamic = context.root().dynamic(); } if (dynamic == Dynamic.STRICT) { - throw new StrictDynamicMappingException(fullPath, arrayFieldName, context.mappingsModified()); + throw new StrictDynamicMappingException(fullPath, arrayFieldName); } else if (dynamic == Dynamic.TRUE) { - // we sync here just so we won't add it twice. Its not the end of the world - // to sync here since next operations will get it before - synchronized (mutex) { - mapper = mappers.get(arrayFieldName); - if (mapper == null) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, arrayFieldName, "object"); - if (builder == null) { - serializeNonDynamicArray(context, lastFieldName, arrayFieldName); - return; - } - BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); - mapper = builder.build(builderContext); - if (mapper != null && mapper instanceof ArrayValueMapperParser) { - putDynamicMapper(context, arrayFieldName, mapper); - } else { - serializeNonDynamicArray(context, lastFieldName, arrayFieldName); - } - } else { - - serializeNonDynamicArray(context, lastFieldName, arrayFieldName); - } + Mapper.Builder builder = context.root().findTemplateBuilder(context, arrayFieldName, "object"); + if (builder == null) { + return serializeNonDynamicArray(context, lastFieldName, arrayFieldName); + } + BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); + mapper = builder.build(builderContext); + if (mapper != null && mapper instanceof ArrayValueMapperParser) { + context.path().add(arrayFieldName); + mapper = MapperUtils.parseAndMergeUpdate(mapper, context); + return mappingUpdate(mapper); + } else { + return serializeNonDynamicArray(context, lastFieldName, arrayFieldName); } } else { - - serializeNonDynamicArray(context, lastFieldName, arrayFieldName); + return serializeNonDynamicArray(context, lastFieldName, arrayFieldName); } } } - private void putDynamicMapper(ParseContext context, String arrayFieldName, Mapper mapper) throws IOException { - // ...now re add it - context.path().add(arrayFieldName); - context.setMappingsModified(); - - if (context.isWithinNewMapper()) { - // within a new mapper, no need to traverse, - // just parse - mapper.parse(context); - } else { - // create a context of new mapper, so we batch - // aggregate all the changes within - // this object mapper once, and traverse all of - // them to add them in a single go - context.setWithinNewMapper(); - try { - mapper.parse(context); - FieldMapperListener.Aggregator newFields = new FieldMapperListener.Aggregator(); - ObjectMapperListener.Aggregator newObjects = new ObjectMapperListener.Aggregator(); - mapper.traverse(newFields); - mapper.traverse(newObjects); - // callback on adding those fields! - context.docMapper().addFieldMappers(newFields.mappers); - context.docMapper().addObjectMappers(newObjects.mappers); - } finally { - context.clearWithinNewMapper(); - } - } - - // only put after we traversed and did the - // callbacks, so other parsing won't see it only - // after we - // properly traversed it and adding the mappers - putMapper(mapper); - } - - private void serializeNonDynamicArray(ParseContext context, String lastFieldName, String arrayFieldName) throws IOException { + private ObjectMapper serializeNonDynamicArray(ParseContext context, String lastFieldName, String arrayFieldName) throws IOException { XContentParser parser = context.parser(); XContentParser.Token token; while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { if (token == XContentParser.Token.START_OBJECT) { - serializeObject(context, lastFieldName); + return serializeObject(context, lastFieldName); } else if (token == XContentParser.Token.START_ARRAY) { - serializeArray(context, lastFieldName); + return serializeArray(context, lastFieldName); } else if (token == XContentParser.Token.FIELD_NAME) { lastFieldName = parser.currentName(); } else if (token == XContentParser.Token.VALUE_NULL) { serializeNullValue(context, lastFieldName); } else if (token == null) { - throw new MapperParsingException("object mapping for [" + name + "] with array for [" + arrayFieldName + "] tried to parse as array, but got EOF, is there a mismatch in types for the same field?", context.mappingsModified()); + throw new MapperParsingException("object mapping for [" + name + "] with array for [" + arrayFieldName + "] tried to parse as array, but got EOF, is there a mismatch in types for the same field?"); } else { - serializeValue(context, lastFieldName, token); + return serializeValue(context, lastFieldName, token); } } + return null; } - private void serializeValue(final ParseContext context, String currentFieldName, XContentParser.Token token) throws IOException { + private ObjectMapper serializeValue(final ParseContext context, String currentFieldName, XContentParser.Token token) throws IOException { if (currentFieldName == null) { - throw new MapperParsingException("object mapping [" + name + "] trying to serialize a value with no field associated with it, current value [" + context.parser().textOrNull() + "]", context.mappingsModified()); + throw new MapperParsingException("object mapping [" + name + "] trying to serialize a value with no field associated with it, current value [" + context.parser().textOrNull() + "]"); } Mapper mapper = mappers.get(currentFieldName); if (mapper != null) { - mapper.parse(context); + Mapper subUpdate = mapper.parse(context); + if (subUpdate == null) { + return null; + } + return mappingUpdate(subUpdate); } else { - parseDynamicValue(context, currentFieldName, token); + return parseDynamicValue(context, currentFieldName, token); } } - public void parseDynamicValue(final ParseContext context, String currentFieldName, XContentParser.Token token) throws IOException { + public ObjectMapper parseDynamicValue(final ParseContext context, String currentFieldName, XContentParser.Token token) throws IOException { Dynamic dynamic = this.dynamic; if (dynamic == null) { dynamic = context.root().dynamic(); } if (dynamic == Dynamic.STRICT) { - throw new StrictDynamicMappingException(fullPath, currentFieldName, context.mappingsModified()); + throw new StrictDynamicMappingException(fullPath, currentFieldName); } if (dynamic == Dynamic.FALSE) { - return; + return null; } - // we sync here since we don't want to add this field twice to the document mapper - // its not the end of the world, since we add it to the mappers once we create it - // so next time we won't even get here for this field - synchronized (mutex) { - Mapper mapper = mappers.get(currentFieldName); - if (mapper == null) { - BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); - if (token == XContentParser.Token.VALUE_STRING) { - boolean resolved = false; + Mapper mapper = null; + BuilderContext builderContext = new BuilderContext(context.indexSettings(), context.path()); + if (token == XContentParser.Token.VALUE_STRING) { + boolean resolved = false; - // do a quick test to see if its fits a dynamic template, if so, use it. - // we need to do it here so we can handle things like attachment templates, where calling - // text (to see if its a date) causes the binary value to be cleared - if (!resolved) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string", null); - if (builder != null) { - mapper = builder.build(builderContext); - resolved = true; - } - } + // do a quick test to see if its fits a dynamic template, if so, use it. + // we need to do it here so we can handle things like attachment templates, where calling + // text (to see if its a date) causes the binary value to be cleared + if (!resolved) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string", null); + if (builder != null) { + mapper = builder.build(builderContext); + resolved = true; + } + } - if (!resolved && context.root().dateDetection()) { - String text = context.parser().text(); - // a safe check since "1" gets parsed as well - if (Strings.countOccurrencesOf(text, ":") > 1 || Strings.countOccurrencesOf(text, "-") > 1 || Strings.countOccurrencesOf(text, "/") > 1) { - for (FormatDateTimeFormatter dateTimeFormatter : context.root().dynamicDateTimeFormatters()) { - try { - dateTimeFormatter.parser().parseMillis(text); - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "date"); - if (builder == null) { - builder = dateField(currentFieldName).dateTimeFormatter(dateTimeFormatter); - } - mapper = builder.build(builderContext); - resolved = true; - break; - } catch (Exception e) { - // failure to parse this, continue - } - } - } - } - if (!resolved && context.root().numericDetection()) { - String text = context.parser().text(); + if (!resolved && context.root().dateDetection()) { + String text = context.parser().text(); + // a safe check since "1" gets parsed as well + if (Strings.countOccurrencesOf(text, ":") > 1 || Strings.countOccurrencesOf(text, "-") > 1 || Strings.countOccurrencesOf(text, "/") > 1) { + for (FormatDateTimeFormatter dateTimeFormatter : context.root().dynamicDateTimeFormatters()) { try { - Long.parseLong(text); - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); + dateTimeFormatter.parser().parseMillis(text); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "date"); if (builder == null) { - builder = longField(currentFieldName); + builder = dateField(currentFieldName).dateTimeFormatter(dateTimeFormatter); } mapper = builder.build(builderContext); resolved = true; + break; } catch (Exception e) { - // not a long number - } - if (!resolved) { - try { - Double.parseDouble(text); - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); - if (builder == null) { - builder = doubleField(currentFieldName); - } - mapper = builder.build(builderContext); - resolved = true; - } catch (Exception e) { - // not a long number - } + // failure to parse this, continue } } - if (!resolved) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string"); - if (builder == null) { - builder = stringField(currentFieldName); - } - mapper = builder.build(builderContext); + } + } + if (!resolved && context.root().numericDetection()) { + String text = context.parser().text(); + try { + Long.parseLong(text); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); + if (builder == null) { + builder = longField(currentFieldName); } - } else if (token == XContentParser.Token.VALUE_NUMBER) { - XContentParser.NumberType numberType = context.parser().numberType(); - if (numberType == XContentParser.NumberType.INT) { - if (context.parser().estimatedNumberType()) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); - if (builder == null) { - builder = longField(currentFieldName); - } - mapper = builder.build(builderContext); - } else { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "integer"); - if (builder == null) { - builder = integerField(currentFieldName); - } - mapper = builder.build(builderContext); - } - } else if (numberType == XContentParser.NumberType.LONG) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); - if (builder == null) { - builder = longField(currentFieldName); - } - mapper = builder.build(builderContext); - } else if (numberType == XContentParser.NumberType.FLOAT) { - if (context.parser().estimatedNumberType()) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); - if (builder == null) { - builder = doubleField(currentFieldName); - } - mapper = builder.build(builderContext); - } else { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "float"); - if (builder == null) { - builder = floatField(currentFieldName); - } - mapper = builder.build(builderContext); - } - } else if (numberType == XContentParser.NumberType.DOUBLE) { + mapper = builder.build(builderContext); + resolved = true; + } catch (Exception e) { + // not a long number + } + if (!resolved) { + try { + Double.parseDouble(text); Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); if (builder == null) { builder = doubleField(currentFieldName); } mapper = builder.build(builderContext); + resolved = true; + } catch (Exception e) { + // not a long number } - } else if (token == XContentParser.Token.VALUE_BOOLEAN) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "boolean"); + } + } + if (!resolved) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string"); + if (builder == null) { + builder = stringField(currentFieldName); + } + mapper = builder.build(builderContext); + } + } else if (token == XContentParser.Token.VALUE_NUMBER) { + XContentParser.NumberType numberType = context.parser().numberType(); + if (numberType == XContentParser.NumberType.INT) { + if (context.parser().estimatedNumberType()) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); if (builder == null) { - builder = booleanField(currentFieldName); - } - mapper = builder.build(builderContext); - } else if (token == XContentParser.Token.VALUE_EMBEDDED_OBJECT) { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "binary"); - if (builder == null) { - builder = binaryField(currentFieldName); + builder = longField(currentFieldName); } mapper = builder.build(builderContext); } else { - Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, null); - if (builder != null) { - mapper = builder.build(builderContext); - } else { - // TODO how do we identify dynamically that its a binary value? - throw new ElasticsearchIllegalStateException("Can't handle serializing a dynamic type with content token [" + token + "] and field name [" + currentFieldName + "]"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "integer"); + if (builder == null) { + builder = integerField(currentFieldName); } + mapper = builder.build(builderContext); } - - if (context.isWithinNewMapper()) { - mapper.parse(context); + } else if (numberType == XContentParser.NumberType.LONG) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); + if (builder == null) { + builder = longField(currentFieldName); + } + mapper = builder.build(builderContext); + } else if (numberType == XContentParser.NumberType.FLOAT) { + if (context.parser().estimatedNumberType()) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); + if (builder == null) { + builder = doubleField(currentFieldName); + } + mapper = builder.build(builderContext); } else { - context.setWithinNewMapper(); - try { - mapper.parse(context); - FieldMapperListener.Aggregator newFields = new FieldMapperListener.Aggregator(); - mapper.traverse(newFields); - context.docMapper().addFieldMappers(newFields.mappers); - } finally { - context.clearWithinNewMapper(); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "float"); + if (builder == null) { + builder = floatField(currentFieldName); } + mapper = builder.build(builderContext); } - - // only put after we traversed and did the callbacks, so other parsing won't see it only after we - // properly traversed it and adding the mappers - putMapper(mapper); - context.setMappingsModified(); + } else if (numberType == XContentParser.NumberType.DOUBLE) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); + if (builder == null) { + builder = doubleField(currentFieldName); + } + mapper = builder.build(builderContext); + } + } else if (token == XContentParser.Token.VALUE_BOOLEAN) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "boolean"); + if (builder == null) { + builder = booleanField(currentFieldName); + } + mapper = builder.build(builderContext); + } else if (token == XContentParser.Token.VALUE_EMBEDDED_OBJECT) { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "binary"); + if (builder == null) { + builder = binaryField(currentFieldName); + } + mapper = builder.build(builderContext); + } else { + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, null); + if (builder != null) { + mapper = builder.build(builderContext); } else { - mapper.parse(context); + // TODO how do we identify dynamically that its a binary value? + throw new ElasticsearchIllegalStateException("Can't handle serializing a dynamic type with content token [" + token + "] and field name [" + currentFieldName + "]"); } } + + mapper = MapperUtils.parseAndMergeUpdate(mapper, context); + + ObjectMapper update = null; + if (mapper != null) { + update = mappingUpdate(mapper); + } + return update; } @Override @@ -966,33 +944,30 @@ public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { List mappersToPut = new ArrayList<>(); FieldMapperListener.Aggregator newFieldMappers = new FieldMapperListener.Aggregator(); ObjectMapperListener.Aggregator newObjectMappers = new ObjectMapperListener.Aggregator(); - synchronized (mutex) { - for (Mapper mapper : mergeWithObject.mappers.values()) { - Mapper mergeWithMapper = mapper; - Mapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); - if (mergeIntoMapper == null) { - // no mapping, simply add it if not simulating - if (!mergeContext.mergeFlags().simulate()) { - mappersToPut.add(mergeWithMapper); - mergeWithMapper.traverse(newFieldMappers); - mergeWithMapper.traverse(newObjectMappers); - } - } else { - mergeIntoMapper.merge(mergeWithMapper, mergeContext); + for (Mapper mapper : mergeWithObject.mappers.values()) { + Mapper mergeWithMapper = mapper; + Mapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); + if (mergeIntoMapper == null) { + // no mapping, simply add it if not simulating + if (!mergeContext.mergeFlags().simulate()) { + mappersToPut.add(mergeWithMapper); + mergeWithMapper.traverse(newFieldMappers); + mergeWithMapper.traverse(newObjectMappers); } - } - if (!newFieldMappers.mappers.isEmpty()) { - mergeContext.docMapper().addFieldMappers(newFieldMappers.mappers); - } - if (!newObjectMappers.mappers.isEmpty()) { - mergeContext.docMapper().addObjectMappers(newObjectMappers.mappers); - } - // and the mappers only after the administration have been done, so it will not be visible to parser (which first try to read with no lock) - for (Mapper mapper : mappersToPut) { - putMapper(mapper); + } else { + mergeIntoMapper.merge(mergeWithMapper, mergeContext); } } - + if (!newFieldMappers.mappers.isEmpty()) { + mergeContext.addFieldMappers(newFieldMappers.mappers); + } + if (!newObjectMappers.mappers.isEmpty()) { + mergeContext.addObjectMappers(newObjectMappers.mappers); + } + // add the mappers only after the administration have been done, so it will not be visible to parser (which first try to read with no lock) + for (Mapper mapper : mappersToPut) { + putMapper(mapper); + } } protected void doMerge(ObjectMapper mergeWith, MergeContext mergeContext) { diff --git a/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java b/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java index fb188ff0f8f..56d2b96429c 100644 --- a/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java +++ b/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java @@ -21,6 +21,7 @@ package org.elasticsearch.index.mapper.object; import com.google.common.collect.Lists; import com.google.common.collect.Sets; + import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Strings; import org.elasticsearch.common.joda.FormatDateTimeFormatter; @@ -206,6 +207,14 @@ public class RootObjectMapper extends ObjectMapper { this.numericDetection = numericDetection; } + @Override + public ObjectMapper mappingUpdate(Mapper mapper) { + RootObjectMapper update = (RootObjectMapper) super.mappingUpdate(mapper); + // dynamic templates are irrelevant for dynamic mappings updates + update.dynamicTemplates = new DynamicTemplate[0]; + return update; + } + public boolean dateDetection() { return this.dateDetection; } @@ -231,7 +240,7 @@ public class RootObjectMapper extends ObjectMapper { String mappingType = dynamicTemplate.mappingType(dynamicType); Mapper.TypeParser typeParser = parserContext.typeParser(mappingType); if (typeParser == null) { - throw new MapperParsingException("failed to find type parsed [" + mappingType + "] for [" + name + "]", context.mappingsModified()); + throw new MapperParsingException("failed to find type parsed [" + mappingType + "] for [" + name + "]"); } return typeParser.parse(name, dynamicTemplate.mappingForName(name, dynamicType), parserContext); } diff --git a/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/src/main/java/org/elasticsearch/index/shard/IndexShard.java index c05236d87af..9e20a73b26b 100644 --- a/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -457,7 +457,7 @@ public class IndexShard extends AbstractIndexShardComponent { ParsedDocument doc = docMapper.v1().parse(source).setMappingsModified(docMapper); return new Engine.Create(docMapper.v1(), docMapper.v1().uidMapper().term(doc.uid().stringValue()), doc, version, versionType, origin, startTime, canHaveDuplicates, autoGeneratedId); } catch (Throwable t) { - if (docMapper.v2() || (t instanceof MapperParsingException && ((MapperParsingException)t).isMappingsModified())) { + if (docMapper.v2()) { throw new WriteFailureException(t, docMapper.v1().type()); } else { throw t; @@ -493,7 +493,7 @@ public class IndexShard extends AbstractIndexShardComponent { ParsedDocument doc = docMapper.v1().parse(source).setMappingsModified(docMapper); return new Engine.Index(docMapper.v1(), docMapper.v1().uidMapper().term(doc.uid().stringValue()), doc, version, versionType, origin, startTime, canHaveDuplicates); } catch (Throwable t) { - if (docMapper.v2() || (t instanceof MapperParsingException && ((MapperParsingException) t).isMappingsModified())) { + if (docMapper.v2()) { throw new WriteFailureException(t, docMapper.v1().type()); } else { throw t; diff --git a/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java b/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java index e234c5141e4..01d7846740f 100644 --- a/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java +++ b/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java @@ -37,23 +37,38 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; -import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.IndexService; +import org.elasticsearch.index.engine.Engine.Searcher; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.FieldMapper; +import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.internal.IndexFieldMapper; import org.elasticsearch.index.mapper.internal.SizeFieldMapper; import org.elasticsearch.index.mapper.internal.SourceFieldMapper; -import org.elasticsearch.index.mapper.internal.TypeFieldMapper; import org.elasticsearch.test.ElasticsearchSingleNodeTest; import org.hamcrest.Matchers; import org.junit.Test; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static org.elasticsearch.common.io.Streams.copyToBytesFromClasspath; import static org.elasticsearch.common.io.Streams.copyToStringFromClasspath; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.hamcrest.Matchers.*; +import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; /** * @@ -82,7 +97,8 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { @Test public void testAllMappersNoBoost() throws Exception { String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/all/noboost-mapping.json"); - DocumentMapper docMapper = createIndex("test").mapperService().documentMapperParser().parse(mapping); + IndexService index = createIndex("test"); + DocumentMapper docMapper = index.mapperService().documentMapperParser().parse(mapping); byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/all/test1.json"); Document doc = docMapper.parse(new BytesArray(json)).rootDoc(); AllField field = (AllField) doc.getField("_all"); @@ -93,7 +109,6 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { assertThat(allEntries.fields().contains("simple1"), equalTo(true)); FieldMapper mapper = docMapper.mappers().smartNameFieldMapper("_all"); assertThat(field.fieldType().omitNorms(), equalTo(false)); - assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")), Matchers.instanceOf(TermQuery.class)); } @Test @@ -110,7 +125,7 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { assertThat(allEntries.fields().contains("simple1"), equalTo(true)); FieldMapper mapper = docMapper.mappers().smartNameFieldMapper("_all"); assertThat(field.fieldType().omitNorms(), equalTo(false)); - assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")), Matchers.instanceOf(TermQuery.class)); + assertThat(mapper.queryStringTermQuery(new Term("_all", "foobar")), Matchers.instanceOf(AllTermQuery.class)); } @@ -223,7 +238,6 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { boolean omitNorms = false; boolean stored = false; boolean enabled = true; - boolean autoBoost = false; boolean tv_stored = false; boolean tv_payloads = false; boolean tv_offsets = false; @@ -249,9 +263,6 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { if (randomBoolean()) { booleanOptionList.add(new Tuple<>("enabled", enabled = randomBoolean())); } - if (randomBoolean()) { - booleanOptionList.add(new Tuple<>("auto_boost", autoBoost = randomBoolean())); - } if (randomBoolean()) { booleanOptionList.add(new Tuple<>("store_term_vector_offsets", tv_offsets = randomBoolean())); } @@ -312,14 +323,6 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { } else { assertThat(field, nullValue()); } - - Term term = new Term("foo", "bar"); - Query query = builtDocMapper.allFieldMapper().queryStringTermQuery(term); - if (autoBoost) { - assertThat(query, equalTo((Query)new AllTermQuery(term))); - } else { - assertThat(query, equalTo((Query)new TermQuery(term))); - } if (similarity == null || similarity.equals("TF/IDF")) { assertThat(builtDocMapper.allFieldMapper().similarity(), nullValue()); } else { @@ -458,4 +461,19 @@ public class SimpleAllMapperTests extends ElasticsearchSingleNodeTest { assertThat(e.getDetailedMessage(), containsString("[_all] is always tokenized and cannot have doc values")); } } + + public void testAutoBoost() throws Exception { + for (boolean boost : new boolean[] {false, true}) { + String index = "test_" + boost; + IndexService indexService = createIndex(index, client().admin().indices().prepareCreate(index).addMapping("type", "foo", "type=string" + (boost ? ",boost=2" : ""))); + client().prepareIndex(index, "type").setSource("foo", "bar").get(); + client().admin().indices().prepareRefresh(index).get(); + Query query = indexService.mapperService().documentMapper("type").allFieldMapper().termQuery("bar", null); + try (Searcher searcher = indexService.shard(0).acquireSearcher("tests")) { + query = searcher.searcher().rewrite(query); + final Class expected = boost ? AllTermQuery.class : TermQuery.class; + assertThat(query, Matchers.instanceOf(expected)); + } + } + } } diff --git a/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java b/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java index e5189c4027b..199c30d029a 100644 --- a/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java +++ b/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java @@ -19,15 +19,31 @@ package org.elasticsearch.index.mapper.dynamic; import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; + +import org.elasticsearch.Version; import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse; import org.elasticsearch.action.index.IndexRequestBuilder; +import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.IndexService; -import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.mapper.ContentPath; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.FieldMappers; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SourceToParse; +import org.elasticsearch.index.mapper.StrictDynamicMappingException; import org.elasticsearch.test.ElasticsearchSingleNodeTest; -import org.junit.Test; import java.io.IOException; import java.util.LinkedHashMap; @@ -39,7 +55,6 @@ import static org.hamcrest.Matchers.nullValue; public class DynamicMappingTests extends ElasticsearchSingleNodeTest { - @Test public void testDynamicTrue() throws IOException { String mapping = jsonBuilder().startObject().startObject("type") .field("dynamic", "true") @@ -60,7 +75,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { assertThat(doc.rootDoc().get("field2"), equalTo("value2")); } - @Test public void testDynamicFalse() throws IOException { String mapping = jsonBuilder().startObject().startObject("type") .field("dynamic", "false") @@ -82,7 +96,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { } - @Test public void testDynamicStrict() throws IOException { String mapping = jsonBuilder().startObject().startObject("type") .field("dynamic", "strict") @@ -116,7 +129,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { } } - @Test public void testDynamicFalseWithInnerObjectButDynamicSetOnRoot() throws IOException { String mapping = jsonBuilder().startObject().startObject("type") .field("dynamic", "false") @@ -140,7 +152,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { assertThat(doc.rootDoc().get("obj1.field2"), nullValue()); } - @Test public void testDynamicStrictWithInnerObjectButDynamicSetOnRoot() throws IOException { String mapping = jsonBuilder().startObject().startObject("type") .field("dynamic", "strict") @@ -173,7 +184,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { assertTrue(mappers != null && mappers.isEmpty() == false); } - @Test public void testIndexingFailureDoesStillCreateType() throws IOException, InterruptedException { XContentBuilder mapping = jsonBuilder().startObject().startObject("_default_") .field("dynamic", "strict") @@ -202,7 +212,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { } - @Test public void testTypeCreatedProperly() throws IOException, InterruptedException { XContentBuilder mapping = jsonBuilder().startObject().startObject("_default_") .field("dynamic", "strict") @@ -243,7 +252,6 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { assertNotNull(getMappingsResponse.getMappings().get("test").get("type")); } - @Test public void testFieldsCreatedWithPartialParsing() throws IOException, InterruptedException { XContentBuilder mapping = jsonBuilder().startObject().startObject("doc") .startObject("properties") @@ -304,4 +312,178 @@ public class DynamicMappingTests extends ElasticsearchSingleNodeTest { } })); } + + private String serialize(ToXContent mapper) throws Exception { + XContentBuilder builder = XContentFactory.jsonBuilder().startObject(); + mapper.toXContent(builder, new ToXContent.MapParams(ImmutableMap.of())); + return builder.endObject().string(); + } + + private Mapper parse(DocumentMapper mapper, DocumentMapperParser parser, XContentBuilder builder) throws Exception { + Settings settings = ImmutableSettings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build(); + ParseContext.InternalParseContext ctx = new ParseContext.InternalParseContext("test", settings, parser, mapper, new ContentPath(0)); + SourceToParse source = SourceToParse.source(builder.bytes()); + ctx.reset(XContentHelper.createParser(source.source()), new ParseContext.Document(), source, null); + assertEquals(XContentParser.Token.START_OBJECT, ctx.parser().nextToken()); + ctx.parser().nextToken(); + return mapper.root().parse(ctx); + } + + public void testDynamicMappingsNotNeeded() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").startObject("foo").field("type", "string").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().field("foo", "bar").endObject()); + // foo is already defined in the mappings + assertNull(update); + } + + public void testField() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().field("foo", "bar").endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals("{\"type\":{\"properties\":{\"foo\":{\"type\":\"string\"}}}}", serialize(update)); + } + + public void testIncremental() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + // Make sure that mapping updates are incremental, this is important for performance otherwise + // every new field introduction runs in linear time with the total number of fields + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").startObject("foo").field("type", "string").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().field("foo", "bar").field("bar", "baz").endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + // foo is NOT in the update + .startObject("bar").field("type", "string").endObject() + .endObject().endObject().string(), serialize(update)); + } + + public void testIntroduceTwoFields() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().field("foo", "bar").field("bar", "baz").endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + .startObject("bar").field("type", "string").endObject() + .startObject("foo").field("type", "string").endObject() + .endObject().endObject().string(), serialize(update)); + } + + public void testObject() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().startObject("foo").startObject("bar").field("baz", "foo").endObject().endObject().endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + .startObject("foo").startObject("properties").startObject("bar").startObject("properties").startObject("baz").field("type", "string").endObject().endObject().endObject().endObject().endObject() + .endObject().endObject().endObject().string(), serialize(update)); + } + + public void testArray() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().startArray("foo").value("bar").value("baz").endArray().endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + .startObject("foo").field("type", "string").endObject() + .endObject().endObject().endObject().string(), serialize(update)); + } + + public void testInnerDynamicMapping() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("properties") + .startObject("foo").field("type", "object").endObject() + .endObject().endObject().endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().startObject("foo").startObject("bar").field("baz", "foo").endObject().endObject().endObject()); + assertNotNull(update); + // original mapping not modified + assertEquals(mapping, serialize(mapper)); + // but we have an update + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + .startObject("foo").startObject("properties").startObject("bar").startObject("properties").startObject("baz").field("type", "string").endObject().endObject().endObject().endObject().endObject() + .endObject().endObject().endObject().string(), serialize(update)); + } + + public void testComplexArray() throws Exception { + IndexService indexService = createIndex("test"); + DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").endObject().endObject() + .endObject().string(); + + DocumentMapper mapper = parser.parse(mapping); + assertEquals(mapping, serialize(mapper)); + + Mapper update = parse(mapper, parser, XContentFactory.jsonBuilder().startObject().startArray("foo") + .startObject().field("bar", "baz").endObject() + .startObject().field("baz", 3).endObject() + .endArray().endObject()); + assertEquals(mapping, serialize(mapper)); + assertEquals(XContentFactory.jsonBuilder().startObject().startObject("type").startObject("properties") + .startObject("foo").startObject("properties") + .startObject("bar").field("type", "string").endObject() + .startObject("baz").field("type", "long").endObject() + .endObject().endObject() + .endObject().endObject().endObject().string(), serialize(update)); + } } diff --git a/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalMapper.java b/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalMapper.java index 26653c423a5..8df9f1e7d2a 100755 --- a/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalMapper.java +++ b/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalMapper.java @@ -185,7 +185,7 @@ public class ExternalMapper extends AbstractFieldMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { byte[] bytes = "Hello world".getBytes(Charset.defaultCharset()); binMapper.parse(context.createExternalValueContext(bytes)); @@ -210,6 +210,7 @@ public class ExternalMapper extends AbstractFieldMapper { if (copyTo != null) { copyTo.parse(context); } + return null; } @Override diff --git a/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalRootMapper.java b/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalRootMapper.java index cb9596917c9..4ec787accb8 100644 --- a/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalRootMapper.java +++ b/src/test/java/org/elasticsearch/index/mapper/externalvalues/ExternalRootMapper.java @@ -39,7 +39,8 @@ public class ExternalRootMapper implements RootMapper { } @Override - public void parse(ParseContext context) throws IOException { + public Mapper parse(ParseContext context) throws IOException { + return null; } @Override diff --git a/src/test/java/org/elasticsearch/index/mapper/update/UpdateMappingOnClusterTests.java b/src/test/java/org/elasticsearch/index/mapper/update/UpdateMappingOnClusterTests.java index 3c690d97616..496cb58a692 100644 --- a/src/test/java/org/elasticsearch/index/mapper/update/UpdateMappingOnClusterTests.java +++ b/src/test/java/org/elasticsearch/index/mapper/update/UpdateMappingOnClusterTests.java @@ -68,7 +68,7 @@ public class UpdateMappingOnClusterTests extends ElasticsearchIntegrationTest { "[_all] has different store_term_vector_payloads values", "[_all] has different analyzer", "[_all] has different similarity"}; - // auto_boost and fielddata and search_analyzer should not report conflict + // fielddata and search_analyzer should not report conflict testConflict(mapping, mappingUpdate, errorMessage); } diff --git a/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_create_index.json b/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_create_index.json index bda6b7bf684..2b9c42d50b2 100644 --- a/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_create_index.json +++ b/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_create_index.json @@ -2,7 +2,6 @@ "mappings": { "type": { "_all": { - "auto_boost": true, "store": true, "store_term_vectors": true, "store_term_vector_offsets": true, @@ -29,4 +28,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_update_with_conflicts.json b/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_update_with_conflicts.json index 893804006d4..252aafefb08 100644 --- a/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_update_with_conflicts.json +++ b/src/test/java/org/elasticsearch/index/mapper/update/all_mapping_update_with_conflicts.json @@ -1,7 +1,6 @@ { "type": { "_all": { - "auto_boost": false, "store": false, "enabled": false, "store_term_vectors": false, @@ -17,4 +16,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java b/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java index b35ef5e696f..37f369fe8b9 100644 --- a/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java +++ b/src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java @@ -372,11 +372,6 @@ public abstract class ElasticsearchIntegrationTest extends ElasticsearchTestCase .field("enabled", randomBoolean()) .endObject(); } - if (randomBoolean()) { - mappings.startObject(AllFieldMapper.NAME) - .field("auto_boost", true) - .endObject(); - } if (randomBoolean()) { mappings.startObject(SourceFieldMapper.NAME) .field("compress", randomBoolean()) diff --git a/src/test/resources/org/elasticsearch/bwcompat/index-1.5.0.zip b/src/test/resources/org/elasticsearch/bwcompat/index-1.5.0.zip index 598b7cc79b55afec5ff6b465015760918e8cd2be..4cb9dadb0f81c3f007bd3a3e2aa17878e660a735 100644 GIT binary patch literal 91232 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

X!6lnQxtYY3yI;38v5Ykv6C2S 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�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 literal 87515 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 W;DC7u5D+ckv-TAb5R%|e{r^8WwfwmN