diff --git a/modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/MapperQueryParser.java b/modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/MapperQueryParser.java index 2166a5c0ef6..758fda70c14 100644 --- a/modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/MapperQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/apache/lucene/queryParser/MapperQueryParser.java @@ -30,10 +30,10 @@ import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.io.FastStringReader; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.lucene.search.Queries; -import org.elasticsearch.index.mapper.AllFieldMapper; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.FieldMappers; import org.elasticsearch.index.mapper.MapperService; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/get/TransportGetAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/get/TransportGetAction.java index c73a8974132..bd394da1882 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/get/TransportGetAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/get/TransportGetAction.java @@ -40,7 +40,11 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.Index; import org.elasticsearch.index.cache.bloom.BloomCache; import org.elasticsearch.index.engine.Engine; -import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.FieldMapper; +import org.elasticsearch.index.mapper.FieldMappers; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; +import org.elasticsearch.index.mapper.selector.FieldMappersFieldSelector; import org.elasticsearch.index.service.IndexService; import org.elasticsearch.index.shard.service.IndexShard; import org.elasticsearch.indices.IndicesService; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/mlt/TransportMoreLikeThisAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/mlt/TransportMoreLikeThisAction.java index a4d67c6bb18..86adfa72e4d 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/mlt/TransportMoreLikeThisAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/mlt/TransportMoreLikeThisAction.java @@ -40,8 +40,8 @@ import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.FieldMappers; import org.elasticsearch.index.mapper.InternalMapper; -import org.elasticsearch.index.mapper.SourceFieldMapper; import org.elasticsearch.index.mapper.SourceToParse; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.MoreLikeThisFieldQueryBuilder; import org.elasticsearch.indices.IndicesService; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/cache/id/simple/SimpleIdCache.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/cache/id/simple/SimpleIdCache.java index 22c9705f2a3..30974da5ce1 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/cache/id/simple/SimpleIdCache.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/cache/id/simple/SimpleIdCache.java @@ -36,9 +36,9 @@ import org.elasticsearch.index.AbstractIndexComponent; import org.elasticsearch.index.Index; import org.elasticsearch.index.cache.id.IdCache; import org.elasticsearch.index.cache.id.IdReaderCache; -import org.elasticsearch.index.mapper.ParentFieldMapper; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.ParentFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.index.settings.IndexSettings; import java.util.ArrayList; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/Engine.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/Engine.java index b33ce5e7a0f..79876532d7b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/Engine.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/Engine.java @@ -38,7 +38,7 @@ import org.elasticsearch.index.VersionType; import org.elasticsearch.index.deletionpolicy.SnapshotIndexCommit; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.index.shard.IndexShardComponent; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.translog.Translog; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java index 74742dfa899..bae8215095b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java @@ -49,7 +49,7 @@ import org.elasticsearch.index.cache.bloom.BloomCache; import org.elasticsearch.index.deletionpolicy.SnapshotDeletionPolicy; import org.elasticsearch.index.deletionpolicy.SnapshotIndexCommit; import org.elasticsearch.index.engine.*; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.index.merge.policy.EnableMergePolicy; import org.elasticsearch.index.merge.policy.MergePolicyProvider; import org.elasticsearch.index.merge.scheduler.MergeSchedulerProvider; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllFieldMapper.java deleted file mode 100644 index 79a3b4a43b6..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllFieldMapper.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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; - -/** - * @author kimchy (shay.banon) - */ -public interface AllFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_all"; - - /** - * Is the all field enabled or not. - */ - public boolean enabled(); -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/BoostFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/BoostFieldMapper.java deleted file mode 100644 index 8a11e6b34a9..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/BoostFieldMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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; - -/** - * A field mapper that allows to control the boosting of a parsed document. Can be treated as - * any other field mapper by being stored and analyzed, though, by default, it does neither. - * - * @author kimchy (Shay Banon) - */ -public interface BoostFieldMapper extends FieldMapper, InternalMapper { - -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ContentPath.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ContentPath.java similarity index 98% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ContentPath.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ContentPath.java index 07e620f13c5..7cf199815fd 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ContentPath.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ContentPath.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper; import org.elasticsearch.common.util.concurrent.NotThreadSafe; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java index fb7ac6be376..236ea6cf63e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapper.java @@ -20,118 +20,38 @@ package org.elasticsearch.index.mapper; import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.apache.lucene.search.Filter; +import org.elasticsearch.common.Booleans; import org.elasticsearch.common.Nullable; +import org.elasticsearch.common.Preconditions; import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.compress.CompressedString; -import org.elasticsearch.common.util.concurrent.ThreadSafe; +import org.elasticsearch.common.compress.lzf.LZF; +import org.elasticsearch.common.io.stream.BytesStreamInput; +import org.elasticsearch.common.io.stream.CachedStreamInput; +import org.elasticsearch.common.io.stream.LZFStreamInput; +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.XContentParser; +import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.mapper.internal.*; +import org.elasticsearch.index.mapper.object.RootObjectMapper; + +import java.io.IOException; +import java.util.List; + +import static org.elasticsearch.common.collect.Lists.*; /** * @author kimchy (shay.banon) */ -@ThreadSafe -public interface DocumentMapper { - - void close(); - - String type(); - - /** - * When constructed by parsing a mapping definition, will return it. Otherwise, - * returns null. - */ - CompressedString mappingSource(); - - /** - * Attributes of this type mappings. - */ - ImmutableMap meta(); - - /** - * Generates the source of the mapper based on the current mappings. - */ - void refreshSource() throws FailedToGenerateSourceMapperException; - - UidFieldMapper uidMapper(); - - IdFieldMapper idMapper(); - - TypeFieldMapper typeMapper(); - - IndexFieldMapper indexMapper(); - - SourceFieldMapper sourceMapper(); - - BoostFieldMapper boostMapper(); - - AllFieldMapper allFieldMapper(); - - RoutingFieldMapper routingFieldMapper(); - - ParentFieldMapper parentFieldMapper(); - - DocumentFieldMappers mappers(); - - /** - * The default index analyzer to be used. Note, the {@link DocumentFieldMappers#indexAnalyzer()} should - * probably be used instead. - */ - Analyzer indexAnalyzer(); - - /** - * The default search analyzer to be used. Note, the {@link DocumentFieldMappers#searchAnalyzer()} should - * probably be used instead. - */ - Analyzer searchAnalyzer(); - - /** - * A filter based on the type of the field. - */ - Filter typeFilter(); - - /** - * Parses the source into a parsed document. - * - *

Validates that the source has the provided id and type. Note, most times - * we will already have the id and the type even though they exist in the source as well. - */ - ParsedDocument parse(byte[] source) throws MapperParsingException; - - /** - * Parses the source into a parsed document. - * - *

Validates that the source has the provided id and type. Note, most times - * we will already have the id and the type even though they exist in the source as well. - */ - ParsedDocument parse(String type, String id, byte[] source) throws MapperParsingException; - - /** - * Parses the source into a parsed document. - * - *

Validates that the source has the provided id and type. Note, most times - * we will already have the id and the type even though they exist in the source as well. - */ - ParsedDocument parse(SourceToParse source) throws MapperParsingException; - - /** - * Parses the source into a parsed document. - * - *

Validates that the source has the provided id and type. Note, most times - * we will already have the id and the type even though they exist in the source as well. - */ - ParsedDocument parse(SourceToParse source, @Nullable ParseListener listener) throws MapperParsingException; - - /** - * Merges this document mapper with the provided document mapper. If there are conflicts, the - * {@link MergeResult} will hold them. - */ - MergeResult merge(DocumentMapper mergeWith, MergeFlags mergeFlags) throws MergeMappingException; - - /** - * Adds a field mapper listener. - */ - void addFieldMapperListener(FieldMapperListener fieldMapperListener, boolean includeExisting); +public class DocumentMapper implements ToXContent { /** * A result of a merge. @@ -203,4 +123,556 @@ public interface DocumentMapper { return true; } } + + public static class Builder { + + private UidFieldMapper uidFieldMapper = new UidFieldMapper(); + + private IdFieldMapper idFieldMapper = new IdFieldMapper(); + + private TypeFieldMapper typeFieldMapper = new TypeFieldMapper(); + + private IndexFieldMapper indexFieldMapper = new IndexFieldMapper(); + + private SourceFieldMapper sourceFieldMapper = new SourceFieldMapper(); + private SizeFieldMapper sizeFieldMapper = new SizeFieldMapper(); + + private RoutingFieldMapper routingFieldMapper = new RoutingFieldMapper(); + + private BoostFieldMapper boostFieldMapper = new BoostFieldMapper(); + + private AllFieldMapper allFieldMapper = new AllFieldMapper(); + + private AnalyzerMapper analyzerMapper = new AnalyzerMapper(); + + private ParentFieldMapper parentFieldMapper = null; + + private NamedAnalyzer indexAnalyzer; + + private NamedAnalyzer searchAnalyzer; + + private final String index; + + private final RootObjectMapper rootObjectMapper; + + private ImmutableMap meta = ImmutableMap.of(); + + private Mapper.BuilderContext builderContext = new Mapper.BuilderContext(new ContentPath(1)); + + public Builder(String index, @Nullable Settings indexSettings, RootObjectMapper.Builder builder) { + this.index = index; + this.rootObjectMapper = builder.build(builderContext); + if (indexSettings != null) { + String idIndexed = indexSettings.get("index.mapping._id.indexed"); + if (idIndexed != null && Booleans.parseBoolean(idIndexed, false)) { + idFieldMapper = new IdFieldMapper(Field.Index.NOT_ANALYZED); + } + } + } + + public Builder meta(ImmutableMap meta) { + this.meta = meta; + return this; + } + + public Builder sourceField(SourceFieldMapper.Builder builder) { + this.sourceFieldMapper = builder.build(builderContext); + return this; + } + + public Builder sizeField(SizeFieldMapper.Builder builder) { + this.sizeFieldMapper = builder.build(builderContext); + return this; + } + + public Builder idField(IdFieldMapper.Builder builder) { + this.idFieldMapper = builder.build(builderContext); + return this; + } + + public Builder uidField(UidFieldMapper.Builder builder) { + this.uidFieldMapper = builder.build(builderContext); + return this; + } + + public Builder typeField(TypeFieldMapper.Builder builder) { + this.typeFieldMapper = builder.build(builderContext); + return this; + } + + public Builder indexField(IndexFieldMapper.Builder builder) { + this.indexFieldMapper = builder.build(builderContext); + return this; + } + + public Builder routingField(RoutingFieldMapper.Builder builder) { + this.routingFieldMapper = builder.build(builderContext); + return this; + } + + public Builder parentFiled(ParentFieldMapper.Builder builder) { + this.parentFieldMapper = builder.build(builderContext); + return this; + } + + public Builder boostField(BoostFieldMapper.Builder builder) { + this.boostFieldMapper = builder.build(builderContext); + return this; + } + + public Builder allField(AllFieldMapper.Builder builder) { + this.allFieldMapper = builder.build(builderContext); + return this; + } + + public Builder analyzerField(AnalyzerMapper.Builder builder) { + this.analyzerMapper = builder.build(builderContext); + return this; + } + + public Builder indexAnalyzer(NamedAnalyzer indexAnalyzer) { + this.indexAnalyzer = indexAnalyzer; + return this; + } + + public boolean hasIndexAnalyzer() { + return indexAnalyzer != null; + } + + public Builder searchAnalyzer(NamedAnalyzer searchAnalyzer) { + this.searchAnalyzer = searchAnalyzer; + return this; + } + + public boolean hasSearchAnalyzer() { + return searchAnalyzer != null; + } + + public DocumentMapper build(DocumentMapperParser docMapperParser) { + Preconditions.checkNotNull(rootObjectMapper, "Mapper builder must have the root object mapper set"); + return new DocumentMapper(index, docMapperParser, rootObjectMapper, meta, uidFieldMapper, idFieldMapper, typeFieldMapper, indexFieldMapper, + sourceFieldMapper, sizeFieldMapper, parentFieldMapper, routingFieldMapper, allFieldMapper, analyzerMapper, indexAnalyzer, searchAnalyzer, boostFieldMapper); + } + } + + + private ThreadLocal cache = new ThreadLocal() { + @Override protected ParseContext initialValue() { + return new ParseContext(index, docMapperParser, DocumentMapper.this, new ContentPath(0)); + } + }; + + private final String index; + + private final String type; + + private final DocumentMapperParser docMapperParser; + + private volatile ImmutableMap meta; + + private volatile CompressedString mappingSource; + + private final UidFieldMapper uidFieldMapper; + + private final IdFieldMapper idFieldMapper; + + private final TypeFieldMapper typeFieldMapper; + + private final IndexFieldMapper indexFieldMapper; + + private final SourceFieldMapper sourceFieldMapper; + private final SizeFieldMapper sizeFieldMapper; + + private final RoutingFieldMapper routingFieldMapper; + + private final ParentFieldMapper parentFieldMapper; + + private final BoostFieldMapper boostFieldMapper; + + private final AllFieldMapper allFieldMapper; + + private final AnalyzerMapper analyzerMapper; + + private final RootObjectMapper rootObjectMapper; + + private final NamedAnalyzer indexAnalyzer; + + private final NamedAnalyzer searchAnalyzer; + + private volatile DocumentFieldMappers fieldMappers; + + private final List fieldMapperListeners = newArrayList(); + + private final Filter typeFilter; + + private final Object mutex = new Object(); + + public DocumentMapper(String index, DocumentMapperParser docMapperParser, + RootObjectMapper rootObjectMapper, + ImmutableMap meta, + UidFieldMapper uidFieldMapper, + IdFieldMapper idFieldMapper, + TypeFieldMapper typeFieldMapper, + IndexFieldMapper indexFieldMapper, + SourceFieldMapper sourceFieldMapper, + SizeFieldMapper sizeFieldMapper, + @Nullable ParentFieldMapper parentFieldMapper, + RoutingFieldMapper routingFieldMapper, + AllFieldMapper allFieldMapper, + AnalyzerMapper analyzerMapper, + NamedAnalyzer indexAnalyzer, NamedAnalyzer searchAnalyzer, + @Nullable BoostFieldMapper boostFieldMapper) { + this.index = index; + this.type = rootObjectMapper.name(); + this.docMapperParser = docMapperParser; + this.meta = meta; + this.rootObjectMapper = rootObjectMapper; + this.uidFieldMapper = uidFieldMapper; + this.idFieldMapper = idFieldMapper; + this.typeFieldMapper = typeFieldMapper; + this.indexFieldMapper = indexFieldMapper; + this.sourceFieldMapper = sourceFieldMapper; + this.sizeFieldMapper = sizeFieldMapper; + this.parentFieldMapper = parentFieldMapper; + this.routingFieldMapper = routingFieldMapper; + this.allFieldMapper = allFieldMapper; + this.analyzerMapper = analyzerMapper; + this.boostFieldMapper = boostFieldMapper; + + this.indexAnalyzer = indexAnalyzer; + this.searchAnalyzer = searchAnalyzer; + + this.typeFilter = typeMapper().fieldFilter(type); + + rootObjectMapper.putMapper(idFieldMapper); + if (boostFieldMapper != null) { + rootObjectMapper.putMapper(boostFieldMapper); + } + if (parentFieldMapper != null) { + rootObjectMapper.putMapper(parentFieldMapper); + // also, mark the routing as required! + routingFieldMapper.markAsRequired(); + } + rootObjectMapper.putMapper(routingFieldMapper); + + final List tempFieldMappers = newArrayList(); + // add the basic ones + if (indexFieldMapper.enabled()) { + tempFieldMappers.add(indexFieldMapper); + } + tempFieldMappers.add(typeFieldMapper); + tempFieldMappers.add(sourceFieldMapper); + tempFieldMappers.add(sizeFieldMapper); + tempFieldMappers.add(uidFieldMapper); + tempFieldMappers.add(allFieldMapper); + // now traverse and get all the statically defined ones + rootObjectMapper.traverse(new FieldMapperListener() { + @Override public void fieldMapper(FieldMapper fieldMapper) { + tempFieldMappers.add(fieldMapper); + } + }); + + this.fieldMappers = new DocumentFieldMappers(this, tempFieldMappers); + + refreshSource(); + } + + public String type() { + return this.type; + } + + public ImmutableMap meta() { + return this.meta; + } + + public CompressedString mappingSource() { + return this.mappingSource; + } + + public RootObjectMapper root() { + return this.rootObjectMapper; + } + + public UidFieldMapper uidMapper() { + return this.uidFieldMapper; + } + + public IdFieldMapper idMapper() { + return this.idFieldMapper; + } + + public IndexFieldMapper indexMapper() { + return this.indexFieldMapper; + } + + public TypeFieldMapper typeMapper() { + return this.typeFieldMapper; + } + + public SourceFieldMapper sourceMapper() { + return this.sourceFieldMapper; + } + + public BoostFieldMapper boostMapper() { + return this.boostFieldMapper; + } + + public AllFieldMapper allFieldMapper() { + return this.allFieldMapper; + } + + public RoutingFieldMapper routingFieldMapper() { + return this.routingFieldMapper; + } + + public ParentFieldMapper parentFieldMapper() { + return this.parentFieldMapper; + } + + public Analyzer indexAnalyzer() { + return this.indexAnalyzer; + } + + public Analyzer searchAnalyzer() { + return this.searchAnalyzer; + } + + public Filter typeFilter() { + return this.typeFilter; + } + + public DocumentFieldMappers mappers() { + return this.fieldMappers; + } + + public ParsedDocument parse(byte[] source) throws MapperParsingException { + return parse(SourceToParse.source(source)); + } + + public ParsedDocument parse(String type, String id, byte[] source) throws MapperParsingException { + return parse(SourceToParse.source(source).type(type).id(id)); + } + + public ParsedDocument parse(SourceToParse source) throws MapperParsingException { + return parse(source, null); + } + + public ParsedDocument parse(SourceToParse source, @Nullable ParseListener listener) throws MapperParsingException { + ParseContext 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 + "]"); + } + source.type(this.type); + + XContentParser parser = source.parser(); + try { + if (parser == null) { + if (LZF.isCompressed(source.source())) { + BytesStreamInput siBytes = new BytesStreamInput(source.source()); + LZFStreamInput siLzf = CachedStreamInput.cachedLzf(siBytes); + XContentType contentType = XContentFactory.xContentType(siLzf); + siLzf.resetToBufferStart(); + parser = XContentFactory.xContent(contentType).createParser(siLzf); + } else { + parser = XContentFactory.xContent(source.source()).createParser(source.source()); + } + } + context.reset(parser, new Document(), type, source.source(), source.flyweight(), listener); + + // will result in START_OBJECT + int countDownTokens = 0; + XContentParser.Token token = parser.nextToken(); + if (token != XContentParser.Token.START_OBJECT) { + throw new MapperParsingException("Malformed content, must start with an object"); + } + token = parser.nextToken(); + if (token != XContentParser.Token.FIELD_NAME) { + throw new MapperParsingException("Malformed content, after first object, either the type field or the actual properties should exist"); + } + if (parser.currentName().equals(type)) { + // first field is the same as the type, this might be because the type is provided, and the object exists within it + // or because there is a valid field that by chance is named as the type + + // Note, in this case, we only handle plain value types, an object type will be analyzed as if it was the type itself + // and other same level fields will be ignored + token = parser.nextToken(); + countDownTokens++; + // commented out, allow for same type with START_OBJECT, we do our best to handle it except for the above corner case +// if (token != XContentParser.Token.START_OBJECT) { +// throw new MapperException("Malformed content, a field with the same name as the type must be an object with the properties/fields within it"); +// } + } + + if (sizeFieldMapper.enabled()) { + context.externalValue(source.source().length); + sizeFieldMapper.parse(context); + } + + if (sourceFieldMapper.enabled()) { + sourceFieldMapper.parse(context); + } + // set the id if we have it so we can validate it later on, also, add the uid if we can + if (source.id() != null) { + context.id(source.id()); + uidFieldMapper.parse(context); + } + typeFieldMapper.parse(context); + if (source.routing() != null) { + context.externalValue(source.routing()); + routingFieldMapper.parse(context); + } + + indexFieldMapper.parse(context); + + rootObjectMapper.parse(context); + + for (int i = 0; i < countDownTokens; i++) { + parser.nextToken(); + } + + // if we did not get the id, we need to parse the uid into the document now, after it was added + if (source.id() == null) { + if (context.id() == null) { + if (!source.flyweight()) { + throw new MapperParsingException("No id found while parsing the content source"); + } + } else { + uidFieldMapper.parse(context); + } + } + if (context.parsedIdState() != ParseContext.ParsedIdState.PARSED) { + if (context.id() == null) { + if (!source.flyweight()) { + throw new MapperParsingException("No id mapping with [_id] found in the content, and not explicitly set"); + } + } else { + // mark it as external, so we can parse it + context.parsedId(ParseContext.ParsedIdState.EXTERNAL); + idFieldMapper.parse(context); + } + } + if (parentFieldMapper != null) { + context.externalValue(source.parent()); + parentFieldMapper.parse(context); + } + analyzerMapper.parse(context); + allFieldMapper.parse(context); + // validate aggregated mappers (TODO: need to be added as a phase to any field mapper) + routingFieldMapper.validate(context, source.routing()); + } catch (IOException e) { + throw new MapperParsingException("Failed to parse", e); + } finally { + // only close the parser when its not provided externally + if (source.parser() == null && parser != null) { + parser.close(); + } + } + ParsedDocument doc = new ParsedDocument(context.uid(), context.id(), context.type(), source.routing(), context.doc(), context.analyzer(), + context.source(), context.mappersAdded()).parent(source.parent()); + // reset the context to free up memory + context.reset(null, null, null, null, false, null); + return doc; + } + + public void addFieldMapper(FieldMapper fieldMapper) { + synchronized (mutex) { + fieldMappers = fieldMappers.concat(this, fieldMapper); + for (FieldMapperListener listener : fieldMapperListeners) { + listener.fieldMapper(fieldMapper); + } + } + } + + public void addFieldMapperListener(FieldMapperListener fieldMapperListener, boolean includeExisting) { + synchronized (mutex) { + fieldMapperListeners.add(fieldMapperListener); + if (includeExisting) { + if (indexFieldMapper.enabled()) { + fieldMapperListener.fieldMapper(indexFieldMapper); + } + fieldMapperListener.fieldMapper(sourceFieldMapper); + fieldMapperListener.fieldMapper(sizeFieldMapper); + fieldMapperListener.fieldMapper(typeFieldMapper); + fieldMapperListener.fieldMapper(uidFieldMapper); + fieldMapperListener.fieldMapper(allFieldMapper); + rootObjectMapper.traverse(fieldMapperListener); + } + } + } + + public synchronized MergeResult merge(DocumentMapper mergeWith, MergeFlags mergeFlags) { + DocumentMapper xContentMergeWith = (DocumentMapper) mergeWith; + MergeContext mergeContext = new MergeContext(this, mergeFlags); + rootObjectMapper.merge(xContentMergeWith.rootObjectMapper, mergeContext); + + allFieldMapper.merge(xContentMergeWith.allFieldMapper, mergeContext); + analyzerMapper.merge(xContentMergeWith.analyzerMapper, mergeContext); + sourceFieldMapper.merge(xContentMergeWith.sourceFieldMapper, mergeContext); + sizeFieldMapper.merge(xContentMergeWith.sizeFieldMapper, mergeContext); + + if (!mergeFlags.simulate()) { + // let the merge with attributes to override the attributes + meta = mergeWith.meta(); + // update the source of the merged one + refreshSource(); + } + return new MergeResult(mergeContext.buildConflicts()); + } + + public void refreshSource() throws FailedToGenerateSourceMapperException { + try { + XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON); + builder.startObject(); + toXContent(builder, ToXContent.EMPTY_PARAMS); + builder.endObject(); + this.mappingSource = new CompressedString(builder.string()); + } catch (Exception e) { + throw new FailedToGenerateSourceMapperException(e.getMessage(), e); + } + } + + public void close() { + cache.remove(); + rootObjectMapper.close(); + idFieldMapper.close(); + indexFieldMapper.close(); + typeFieldMapper.close(); + allFieldMapper.close(); + analyzerMapper.close(); + sourceFieldMapper.close(); + sizeFieldMapper.close(); + } + + @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + rootObjectMapper.toXContent(builder, params, new ToXContent() { + @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + if (indexAnalyzer != null && searchAnalyzer != null && indexAnalyzer.name().equals(searchAnalyzer.name()) && !indexAnalyzer.name().startsWith("_")) { + if (!indexAnalyzer.name().equals("default")) { + // same analyzers, output it once + builder.field("analyzer", indexAnalyzer.name()); + } + } else { + if (indexAnalyzer != null && !indexAnalyzer.name().startsWith("_")) { + if (!indexAnalyzer.name().equals("default")) { + builder.field("index_analyzer", indexAnalyzer.name()); + } + } + if (searchAnalyzer != null && !searchAnalyzer.name().startsWith("_")) { + if (!searchAnalyzer.name().equals("default")) { + builder.field("search_analyzer", searchAnalyzer.name()); + } + } + } + + if (meta != null && !meta.isEmpty()) { + builder.field("_meta", meta()); + } + return builder; + } + // no need to pass here id and boost, since they are added to the root object mapper + // in the constructor + }, indexFieldMapper, typeFieldMapper, allFieldMapper, analyzerMapper, sourceFieldMapper, sizeFieldMapper); + return builder; + } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java index b6d0bb72a19..cee54287295 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java @@ -20,26 +20,339 @@ package org.elasticsearch.index.mapper; import org.elasticsearch.common.Nullable; +import org.elasticsearch.common.Strings; +import org.elasticsearch.common.collect.ImmutableMap; +import org.elasticsearch.common.collect.MapBuilder; +import org.elasticsearch.common.collect.Maps; +import org.elasticsearch.common.collect.Tuple; +import org.elasticsearch.common.settings.ImmutableSettings; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.unit.ByteSizeValue; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.AbstractIndexComponent; +import org.elasticsearch.index.Index; +import org.elasticsearch.index.analysis.AnalysisService; +import org.elasticsearch.index.mapper.core.*; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.internal.*; +import org.elasticsearch.index.mapper.ip.IpFieldMapper; +import org.elasticsearch.index.mapper.multifield.MultiFieldMapper; +import org.elasticsearch.index.mapper.object.ObjectMapper; +import org.elasticsearch.index.mapper.object.RootObjectMapper; +import org.elasticsearch.index.settings.IndexSettings; + +import java.io.IOException; +import java.util.Map; + +import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) */ -public interface DocumentMapperParser { +public class DocumentMapperParser extends AbstractIndexComponent { - /** - * Parses the source mapping definition into a document mapper. - */ - DocumentMapper parse(String mappingSource) throws MapperParsingException; + final AnalysisService analysisService; - /** - * Parses the source mapping definition into a document mapper with the specified - * type (overriding the one defined in the source mapping). - */ - DocumentMapper parse(@Nullable String type, String mappingSource) throws MapperParsingException; + private final RootObjectMapper.TypeParser rootObjectTypeParser = new RootObjectMapper.TypeParser(); - /** - * Parses the source mapping definition into a document mapper with the specified - * type (overriding the one defined in the source mapping). - */ - DocumentMapper parse(@Nullable String type, String mappingSource, String defaultMappingSource) throws MapperParsingException; + private final Object typeParsersMutex = new Object(); + + private volatile ImmutableMap typeParsers; + + public DocumentMapperParser(Index index, AnalysisService analysisService) { + this(index, ImmutableSettings.Builder.EMPTY_SETTINGS, analysisService); + } + + public DocumentMapperParser(Index index, @IndexSettings Settings indexSettings, AnalysisService analysisService) { + super(index, indexSettings); + this.analysisService = analysisService; + typeParsers = new MapBuilder() + .put(ByteFieldMapper.CONTENT_TYPE, new ByteFieldMapper.TypeParser()) + .put(ShortFieldMapper.CONTENT_TYPE, new ShortFieldMapper.TypeParser()) + .put(IntegerFieldMapper.CONTENT_TYPE, new IntegerFieldMapper.TypeParser()) + .put(LongFieldMapper.CONTENT_TYPE, new LongFieldMapper.TypeParser()) + .put(FloatFieldMapper.CONTENT_TYPE, new FloatFieldMapper.TypeParser()) + .put(DoubleFieldMapper.CONTENT_TYPE, new DoubleFieldMapper.TypeParser()) + .put(BooleanFieldMapper.CONTENT_TYPE, new BooleanFieldMapper.TypeParser()) + .put(BinaryFieldMapper.CONTENT_TYPE, new BinaryFieldMapper.TypeParser()) + .put(DateFieldMapper.CONTENT_TYPE, new DateFieldMapper.TypeParser()) + .put(IpFieldMapper.CONTENT_TYPE, new IpFieldMapper.TypeParser()) + .put(StringFieldMapper.CONTENT_TYPE, new StringFieldMapper.TypeParser()) + .put(ObjectMapper.CONTENT_TYPE, new ObjectMapper.TypeParser()) + .put(MultiFieldMapper.CONTENT_TYPE, new MultiFieldMapper.TypeParser()) + .put(GeoPointFieldMapper.CONTENT_TYPE, new GeoPointFieldMapper.TypeParser()) + .immutableMap(); + } + + public void putTypeParser(String type, Mapper.TypeParser typeParser) { + synchronized (typeParsersMutex) { + typeParsers = new MapBuilder() + .putAll(typeParsers) + .put(type, typeParser) + .immutableMap(); + } + } + + public Mapper.TypeParser.ParserContext parserContext() { + return new Mapper.TypeParser.ParserContext(analysisService, typeParsers); + } + + public DocumentMapper parse(String source) throws MapperParsingException { + return parse(null, source); + } + + public DocumentMapper parse(@Nullable String type, String source) throws MapperParsingException { + return parse(type, source, null); + } + + @SuppressWarnings({"unchecked"}) + public DocumentMapper parse(@Nullable String type, String source, String defaultSource) throws MapperParsingException { + Map mapping = null; + if (source != null) { + Tuple> t = extractMapping(type, source); + type = t.v1(); + mapping = t.v2(); + } + if (mapping == null) { + mapping = Maps.newHashMap(); + } + + if (type == null) { + throw new MapperParsingException("Failed to derive type"); + } + + if (defaultSource != null) { + Tuple> t = extractMapping(MapperService.DEFAULT_MAPPING, defaultSource); + if (t.v2() != null) { + XContentHelper.mergeDefaults(mapping, t.v2()); + } + } + + Mapper.TypeParser.ParserContext parserContext = new Mapper.TypeParser.ParserContext(analysisService, typeParsers); + + DocumentMapper.Builder docBuilder = doc(index.name(), indexSettings, (RootObjectMapper.Builder) rootObjectTypeParser.parse(type, mapping, parserContext)); + + for (Map.Entry entry : mapping.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + + if (SourceFieldMapper.CONTENT_TYPE.equals(fieldName) || "sourceField".equals(fieldName)) { + docBuilder.sourceField(parseSourceField((Map) fieldNode, parserContext)); + } else if (SizeFieldMapper.CONTENT_TYPE.equals(fieldName)) { + docBuilder.sizeField(parseSizeField((Map) fieldNode, parserContext)); + } else if (IdFieldMapper.CONTENT_TYPE.equals(fieldName) || "idField".equals(fieldName)) { + docBuilder.idField(parseIdField((Map) fieldNode, parserContext)); + } else if (IndexFieldMapper.CONTENT_TYPE.equals(fieldName) || "indexField".equals(fieldName)) { + docBuilder.indexField(parseIndexField((Map) fieldNode, parserContext)); + } else if (TypeFieldMapper.CONTENT_TYPE.equals(fieldName) || "typeField".equals(fieldName)) { + docBuilder.typeField(parseTypeField((Map) fieldNode, parserContext)); + } else if (UidFieldMapper.CONTENT_TYPE.equals(fieldName) || "uidField".equals(fieldName)) { + docBuilder.uidField(parseUidField((Map) fieldNode, parserContext)); + } else if (RoutingFieldMapper.CONTENT_TYPE.equals(fieldName)) { + docBuilder.routingField(parseRoutingField((Map) fieldNode, parserContext)); + } else if (ParentFieldMapper.CONTENT_TYPE.equals(fieldName)) { + docBuilder.parentFiled(parseParentField((Map) fieldNode, parserContext)); + } else if (BoostFieldMapper.CONTENT_TYPE.equals(fieldName) || "boostField".equals(fieldName)) { + docBuilder.boostField(parseBoostField((Map) fieldNode, parserContext)); + } else if (AllFieldMapper.CONTENT_TYPE.equals(fieldName) || "allField".equals(fieldName)) { + docBuilder.allField(parseAllField((Map) fieldNode, parserContext)); + } else if (AnalyzerMapper.CONTENT_TYPE.equals(fieldName)) { + docBuilder.analyzerField(parseAnalyzerField((Map) fieldNode, parserContext)); + } else if ("index_analyzer".equals(fieldName)) { + docBuilder.indexAnalyzer(analysisService.analyzer(fieldNode.toString())); + } else if ("search_analyzer".equals(fieldName)) { + docBuilder.searchAnalyzer(analysisService.analyzer(fieldNode.toString())); + } else if ("analyzer".equals(fieldName)) { + docBuilder.indexAnalyzer(analysisService.analyzer(fieldNode.toString())); + docBuilder.searchAnalyzer(analysisService.analyzer(fieldNode.toString())); + } + } + + if (!docBuilder.hasIndexAnalyzer()) { + docBuilder.indexAnalyzer(analysisService.defaultIndexAnalyzer()); + } + if (!docBuilder.hasSearchAnalyzer()) { + docBuilder.searchAnalyzer(analysisService.defaultSearchAnalyzer()); + } + + ImmutableMap attributes = ImmutableMap.of(); + if (mapping.containsKey("_meta")) { + attributes = ImmutableMap.copyOf((Map) mapping.get("_meta")); + } + docBuilder.meta(attributes); + + DocumentMapper documentMapper = docBuilder.build(this); + // update the source with the generated one + documentMapper.refreshSource(); + return documentMapper; + } + + private UidFieldMapper.Builder parseUidField(Map uidNode, Mapper.TypeParser.ParserContext parserContext) { + UidFieldMapper.Builder builder = uid(); + return builder; + } + + private BoostFieldMapper.Builder parseBoostField(Map boostNode, Mapper.TypeParser.ParserContext parserContext) { + String name = boostNode.get("name") == null ? BoostFieldMapper.Defaults.NAME : boostNode.get("name").toString(); + BoostFieldMapper.Builder builder = boost(name); + parseNumberField(builder, name, boostNode, parserContext); + for (Map.Entry entry : boostNode.entrySet()) { + String propName = Strings.toUnderscoreCase(entry.getKey()); + Object propNode = entry.getValue(); + if (propName.equals("null_value")) { + builder.nullValue(nodeFloatValue(propNode)); + } + } + return builder; + } + + private TypeFieldMapper.Builder parseTypeField(Map typeNode, Mapper.TypeParser.ParserContext parserContext) { + TypeFieldMapper.Builder builder = type(); + parseField(builder, builder.name, typeNode, parserContext); + return builder; + } + + + private IdFieldMapper.Builder parseIdField(Map idNode, Mapper.TypeParser.ParserContext parserContext) { + IdFieldMapper.Builder builder = id(); + parseField(builder, builder.name, idNode, parserContext); + return builder; + } + + // NOTE, we also parse this in MappingMetaData + private RoutingFieldMapper.Builder parseRoutingField(Map routingNode, Mapper.TypeParser.ParserContext parserContext) { + RoutingFieldMapper.Builder builder = routing(); + parseField(builder, builder.name, routingNode, parserContext); + for (Map.Entry entry : routingNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("required")) { + builder.required(nodeBooleanValue(fieldNode)); + } else if (fieldName.equals("path")) { + builder.path(fieldNode.toString()); + } + } + return builder; + } + + private ParentFieldMapper.Builder parseParentField(Map parentNode, Mapper.TypeParser.ParserContext parserContext) { + ParentFieldMapper.Builder builder = new ParentFieldMapper.Builder(); + for (Map.Entry entry : parentNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("type")) { + builder.type(fieldNode.toString()); + } + } + return builder; + } + + private AnalyzerMapper.Builder parseAnalyzerField(Map analyzerNode, Mapper.TypeParser.ParserContext parserContext) { + AnalyzerMapper.Builder builder = analyzer(); + for (Map.Entry entry : analyzerNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("path")) { + builder.field(fieldNode.toString()); + } + } + return builder; + } + + private AllFieldMapper.Builder parseAllField(Map allNode, Mapper.TypeParser.ParserContext parserContext) { + AllFieldMapper.Builder builder = all(); + parseField(builder, builder.name, allNode, parserContext); + for (Map.Entry entry : allNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("enabled")) { + builder.enabled(nodeBooleanValue(fieldNode)); + } + } + return builder; + } + + private SizeFieldMapper.Builder parseSizeField(Map node, Mapper.TypeParser.ParserContext parserContext) { + SizeFieldMapper.Builder builder = new SizeFieldMapper.Builder(); + + for (Map.Entry entry : node.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("enabled")) { + builder.enabled(nodeBooleanValue(fieldNode)); + } else if (fieldName.equals("store")) { + builder.store(parseStore(fieldName, fieldNode.toString())); + } + } + return builder; + } + + private SourceFieldMapper.Builder parseSourceField(Map sourceNode, Mapper.TypeParser.ParserContext parserContext) { + SourceFieldMapper.Builder builder = source(); + + for (Map.Entry entry : sourceNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("enabled")) { + builder.enabled(nodeBooleanValue(fieldNode)); + } else if (fieldName.equals("compress") && fieldNode != null) { + builder.compress(nodeBooleanValue(fieldNode)); + } else if (fieldName.equals("compress_threshold") && fieldNode != null) { + if (fieldNode instanceof Number) { + builder.compressThreshold(((Number) fieldNode).longValue()); + builder.compress(true); + } else { + builder.compressThreshold(ByteSizeValue.parseBytesSizeValue(fieldNode.toString()).bytes()); + builder.compress(true); + } + } + } + return builder; + } + + private IndexFieldMapper.Builder parseIndexField(Map indexNode, Mapper.TypeParser.ParserContext parserContext) { + IndexFieldMapper.Builder builder = MapperBuilders.index(); + parseField(builder, builder.name, indexNode, parserContext); + + for (Map.Entry entry : indexNode.entrySet()) { + String fieldName = Strings.toUnderscoreCase(entry.getKey()); + Object fieldNode = entry.getValue(); + if (fieldName.equals("enabled")) { + builder.enabled(nodeBooleanValue(fieldNode)); + } + } + return builder; + } + + @SuppressWarnings({"unchecked"}) + private Tuple> extractMapping(String type, String source) throws MapperParsingException { + Map root; + XContentParser xContentParser = null; + try { + xContentParser = XContentFactory.xContent(source).createParser(source); + root = xContentParser.map(); + } catch (IOException e) { + throw new MapperParsingException("Failed to parse mapping definition", e); + } finally { + if (xContentParser != null) { + xContentParser.close(); + } + } + + // we always assume the first and single key is the mapping type root + if (root.keySet().size() != 1) { + throw new MapperParsingException("Mapping must have the `type` as the root object"); + } + + String rootName = root.keySet().iterator().next(); + if (type == null) { + type = rootName; + } + + return new Tuple>(type, (Map) root.get(rootName)); + } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java deleted file mode 100644 index 5349b3f6192..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IdFieldMapper.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.document.Document; - -/** - * @author kimchy (Shay Banon) - */ -public interface IdFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_id"; - - String value(Document document); -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java deleted file mode 100644 index 69e92b869dd..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.document.Document; -import org.apache.lucene.index.Term; -import org.elasticsearch.common.util.concurrent.ThreadSafe; - -/** - * A mapper that maps the index name of the resource into the document. - * - * @author kimchy (shay.banon) - */ -@ThreadSafe -public interface IndexFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_index"; - - boolean enabled(); - - String value(Document document); - - Term term(String value); -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/Mapper.java similarity index 81% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/Mapper.java index ca31033c7ee..1f9ed3f93d3 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/Mapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper; import org.elasticsearch.common.Strings; import org.elasticsearch.common.collect.ImmutableMap; @@ -25,9 +25,6 @@ import org.elasticsearch.common.util.concurrent.NotThreadSafe; import org.elasticsearch.common.util.concurrent.ThreadSafe; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.index.analysis.AnalysisService; -import org.elasticsearch.index.mapper.FieldMapperListener; -import org.elasticsearch.index.mapper.MapperParsingException; -import org.elasticsearch.index.mapper.MergeMappingException; import java.io.IOException; import java.util.Map; @@ -36,9 +33,9 @@ import java.util.Map; * @author kimchy (shay.banon) */ @ThreadSafe -public interface XContentMapper extends ToXContent { +public interface Mapper extends ToXContent { - public static final XContentMapper[] EMPTY_ARRAY = new XContentMapper[0]; + public static final Mapper[] EMPTY_ARRAY = new Mapper[0]; @NotThreadSafe public static class BuilderContext { @@ -54,7 +51,7 @@ public interface XContentMapper extends ToXContent { } @NotThreadSafe - public static abstract class Builder { + public static abstract class Builder { protected String name; @@ -64,6 +61,10 @@ public interface XContentMapper extends ToXContent { this.name = name; } + public String name() { + return this.name; + } + public abstract Y build(BuilderContext context); } @@ -89,14 +90,14 @@ public interface XContentMapper extends ToXContent { } } - XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; + Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException; } String name(); void parse(ParseContext context) throws IOException; - void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException; + void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException; void traverse(FieldMapperListener fieldMapperListener); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapperBuilders.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperBuilders.java similarity index 73% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapperBuilders.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperBuilders.java index ddf96fd7a5e..8c0c0866e12 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentMapperBuilders.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperBuilders.java @@ -17,27 +17,40 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.index.mapper.xcontent.ip.IpFieldMapper; +import org.elasticsearch.index.mapper.core.*; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; +import org.elasticsearch.index.mapper.internal.AnalyzerMapper; +import org.elasticsearch.index.mapper.internal.BoostFieldMapper; +import org.elasticsearch.index.mapper.internal.IdFieldMapper; +import org.elasticsearch.index.mapper.internal.IndexFieldMapper; +import org.elasticsearch.index.mapper.internal.RoutingFieldMapper; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; +import org.elasticsearch.index.mapper.internal.TypeFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; +import org.elasticsearch.index.mapper.ip.IpFieldMapper; +import org.elasticsearch.index.mapper.multifield.MultiFieldMapper; +import org.elasticsearch.index.mapper.object.ObjectMapper; +import org.elasticsearch.index.mapper.object.RootObjectMapper; /** * @author kimchy (shay.banon) */ -public final class XContentMapperBuilders { +public final class MapperBuilders { - private XContentMapperBuilders() { + private MapperBuilders() { } - public static XContentDocumentMapper.Builder doc(String index, RootObjectMapper.Builder objectBuilder) { - return new XContentDocumentMapper.Builder(index, null, objectBuilder); + public static DocumentMapper.Builder doc(String index, RootObjectMapper.Builder objectBuilder) { + return new DocumentMapper.Builder(index, null, objectBuilder); } - public static XContentDocumentMapper.Builder doc(String index, @Nullable Settings settings, RootObjectMapper.Builder objectBuilder) { - return new XContentDocumentMapper.Builder(index, settings, objectBuilder); + public static DocumentMapper.Builder doc(String index, @Nullable Settings settings, RootObjectMapper.Builder objectBuilder) { + return new DocumentMapper.Builder(index, settings, objectBuilder); } public static SourceFieldMapper.Builder source() { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperService.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperService.java index bc9f5dd51b2..9a557d50be8 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperService.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/MapperService.java @@ -43,7 +43,7 @@ import org.elasticsearch.env.FailedToResolveConfigException; import org.elasticsearch.index.AbstractIndexComponent; import org.elasticsearch.index.Index; import org.elasticsearch.index.analysis.AnalysisService; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapperParser; +import org.elasticsearch.index.mapper.internal.TypeFieldMapper; import org.elasticsearch.index.settings.IndexSettings; import org.elasticsearch.indices.InvalidTypeNameException; import org.elasticsearch.indices.TypeMissingException; @@ -85,7 +85,6 @@ public class MapperService extends AbstractIndexComponent implements Iterable indexNameFieldMappers = ImmutableMap.of(); private volatile ImmutableMap fullNameFieldMappers = ImmutableMap.of(); - // for now, just use the xcontent one. Can work on it more to support custom ones private final DocumentMapperParser documentParser; private final InternalFieldMapperListener fieldMapperListener = new InternalFieldMapperListener(); @@ -95,7 +94,7 @@ public class MapperService extends AbstractIndexComponent implements Iterable mergeConflicts = Lists.newArrayList(); - public MergeContext(XContentDocumentMapper documentMapper, DocumentMapper.MergeFlags mergeFlags) { + public MergeContext(DocumentMapper documentMapper, DocumentMapper.MergeFlags mergeFlags) { this.documentMapper = documentMapper; this.mergeFlags = mergeFlags; } - public XContentDocumentMapper docMapper() { + public DocumentMapper docMapper() { return documentMapper; } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParentFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParentFieldMapper.java deleted file mode 100644 index 08115220664..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParentFieldMapper.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.index.Term; -import org.elasticsearch.common.util.concurrent.ThreadSafe; - -/** - * @author kimchy (shay.banon) - */ -@ThreadSafe -public interface ParentFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_parent"; - - /** - * The type of the parent doc. - */ - String type(); - - Term term(String type, String id); - - Term term(String uid); -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParseContext.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParseContext.java similarity index 92% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParseContext.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParseContext.java index 668e56394bb..ea2a5aea520 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParseContext.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ParseContext.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; @@ -25,7 +25,7 @@ import org.elasticsearch.common.lucene.all.AllEntries; import org.elasticsearch.common.util.concurrent.NotThreadSafe; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.analysis.AnalysisService; -import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.object.RootObjectMapper; import java.util.HashMap; import java.util.Map; @@ -36,9 +36,9 @@ import java.util.Map; @NotThreadSafe public class ParseContext { - private final XContentDocumentMapper docMapper; + private final DocumentMapper docMapper; - private final XContentDocumentMapperParser docMapperParser; + private final DocumentMapperParser docMapperParser; private final ContentPath path; @@ -76,7 +76,7 @@ public class ParseContext { private AllEntries allEntries = new AllEntries(); - public ParseContext(String index, XContentDocumentMapperParser docMapperParser, XContentDocumentMapper docMapper, ContentPath path) { + public ParseContext(String index, DocumentMapperParser docMapperParser, DocumentMapper docMapper, ContentPath path) { this.index = index; this.docMapper = docMapper; this.docMapperParser = docMapperParser; @@ -104,7 +104,7 @@ public class ParseContext { return this.flyweight; } - public XContentDocumentMapperParser docMapperParser() { + public DocumentMapperParser docMapperParser() { return this.docMapperParser; } @@ -153,7 +153,7 @@ public class ParseContext { return docMapper.root(); } - public XContentDocumentMapper docMapper() { + public DocumentMapper docMapper() { return this.docMapper; } @@ -200,7 +200,7 @@ public class ParseContext { } /** - * Is all included or not. Will always disable it if {@link org.elasticsearch.index.mapper.AllFieldMapper#enabled()} + * Is all included or not. Will always disable it if {@link org.elasticsearch.index.mapper.internal.AllFieldMapper#enabled()} * is false. If its enabled, then will return true only if the specific flag is null or * its actual value (so, if not set, defaults to "true"). */ diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java deleted file mode 100644 index fda2383531a..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.document.Document; - -/** - * @author kimchy (shay.banon) - */ -public interface RoutingFieldMapper extends FieldMapper, InternalMapper { - - boolean required(); - - String path(); - - String value(Document document); -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java deleted file mode 100644 index 213f7065749..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.document.Document; -import org.apache.lucene.document.FieldSelector; -import org.apache.lucene.document.Fieldable; -import org.elasticsearch.common.util.concurrent.ThreadSafe; - -/** - * A mapper that maps the actual source of a generated document. - * - * @author kimchy (shay.banon) - */ -@ThreadSafe -public interface SourceFieldMapper extends FieldMapper, InternalMapper { - - public final String NAME = "_source"; - - /** - * Returns true if the source field mapper is enabled or not. - */ - boolean enabled(); - - /** - * Returns the native source value, if its compressed, then the compressed value is returned. - */ - byte[] nativeValue(Fieldable field); - - byte[] value(Document document); - - /** - * A field selector that loads just the source field. - */ - FieldSelector fieldSelector(); -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java deleted file mode 100644 index 21e0e27aecf..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/TypeFieldMapper.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.document.Document; -import org.apache.lucene.index.Term; -import org.elasticsearch.common.util.concurrent.ThreadSafe; - -/** - * A mapper that maps the type of the resource into the document. - * - * @author kimchy (Shay Banon) - */ -@ThreadSafe -public interface TypeFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_type"; - - public static final Term TERM_FACTORY = new Term(NAME, ""); - - String value(Document document); - - Term term(String value); -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldMapper.java deleted file mode 100644 index 0d987956606..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldMapper.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.apache.lucene.index.Term; -import org.elasticsearch.common.util.concurrent.ThreadSafe; - -/** - * @author kimchy (Shay Banon) - */ -@ThreadSafe -public interface UidFieldMapper extends FieldMapper, InternalMapper { - - public static final String NAME = "_uid"; - - public static final Term TERM_FACTORY = new Term(NAME, ""); - - Term term(String type, String id); - - Term term(String uid); -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AbstractFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java similarity index 97% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AbstractFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java index f9c09c7063c..c1e4bd6d474 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AbstractFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/AbstractFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Field; @@ -36,8 +36,11 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.field.data.FieldDataType; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.FieldMapperListener; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; @@ -45,7 +48,7 @@ import java.io.IOException; /** * @author kimchy (shay.banon) */ -public abstract class AbstractFieldMapper implements FieldMapper, XContentMapper { +public abstract class AbstractFieldMapper implements FieldMapper, Mapper { public static class Defaults { public static final Field.Index INDEX = Field.Index.ANALYZED; @@ -99,7 +102,7 @@ public abstract class AbstractFieldMapper implements FieldMapper, XContent } } - public abstract static class Builder extends XContentMapper.Builder { + public abstract static class Builder extends Mapper.Builder { protected Field.Index index = Defaults.INDEX; @@ -365,7 +368,7 @@ public abstract class AbstractFieldMapper implements FieldMapper, XContent includeLower, includeUpper); } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { if (!this.getClass().equals(mergeWith.getClass())) { String mergedType = mergeWith.getClass().getSimpleName(); if (mergeWith instanceof AbstractFieldMapper) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BinaryFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java similarity index 87% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BinaryFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java index 3025ee6939b..61c2c625b80 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BinaryFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BinaryFieldMapper.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.ParseContext; import java.io.IOException; import java.util.Map; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -54,8 +56,8 @@ public class BinaryFieldMapper extends AbstractFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { BinaryFieldMapper.Builder builder = binaryField(name); parseField(builder, name, node, parserContext); return builder; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BooleanFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BooleanFieldMapper.java similarity index 93% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BooleanFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BooleanFieldMapper.java index 0217a0724b1..7f84f435902 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BooleanFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/BooleanFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; @@ -26,14 +26,16 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.ParseContext; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -93,8 +95,8 @@ public class BooleanFieldMapper extends AbstractFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { BooleanFieldMapper.Builder builder = booleanField(name); parseField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ByteFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ByteFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ByteFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ByteFieldMapper.java index c86a15bc28e..eb0f60180e4 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ByteFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ByteFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -34,16 +34,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericIntegerAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -78,8 +81,8 @@ public class ByteFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { ByteFieldMapper.Builder builder = byteField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -214,7 +217,7 @@ public class ByteFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DateFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DateFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DateFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DateFieldMapper.java index feb55bf2d51..a97aa8b8be5 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DateFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DateFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; @@ -37,15 +37,18 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericDateAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -89,8 +92,8 @@ public class DateFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { DateFieldMapper.Builder builder = dateField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -259,7 +262,7 @@ public class DateFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DoubleFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DoubleFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DoubleFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DoubleFieldMapper.java index 1e9daccefac..e0eff6c135e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DoubleFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/DoubleFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -34,16 +34,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericDoubleAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -78,8 +81,8 @@ public class DoubleFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { DoubleFieldMapper.Builder builder = doubleField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -211,7 +214,7 @@ public class DoubleFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/FloatFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/FloatFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/FloatFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/FloatFieldMapper.java index 79bdb1e65ff..7522f95269c 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/FloatFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/FloatFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -35,16 +35,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericFloatAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -79,8 +82,8 @@ public class FloatFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { FloatFieldMapper.Builder builder = floatField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -210,7 +213,7 @@ public class FloatFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IntegerFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/IntegerFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IntegerFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/IntegerFieldMapper.java index b6c28543404..289244d772c 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IntegerFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/IntegerFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -35,16 +35,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericIntegerAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -79,8 +82,8 @@ public class IntegerFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { IntegerFieldMapper.Builder builder = integerField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -215,7 +218,7 @@ public class IntegerFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/LongFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/LongFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/LongFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/LongFieldMapper.java index becb39bda88..31121d7d81e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/LongFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/LongFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -35,16 +35,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericLongAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -79,8 +82,8 @@ public class LongFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { LongFieldMapper.Builder builder = longField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -214,7 +217,7 @@ public class LongFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/NumberFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/NumberFieldMapper.java similarity index 95% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/NumberFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/NumberFieldMapper.java index 6dc51fd1ebd..91c98e3d7d9 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/NumberFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/NumberFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.NumericTokenStream; import org.apache.lucene.document.AbstractField; @@ -30,7 +30,10 @@ import org.elasticsearch.common.Nullable; import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import org.elasticsearch.index.query.QueryParseContext; import java.io.Reader; @@ -38,7 +41,7 @@ import java.io.Reader; /** * @author kimchy (shay.banon) */ -public abstract class NumberFieldMapper extends AbstractFieldMapper implements IncludeInAllMapper { +public abstract class NumberFieldMapper extends AbstractFieldMapper implements AllFieldMapper.IncludeInAll { public static class Defaults extends AbstractFieldMapper.Defaults { public static final int PRECISION_STEP = NumericUtils.PRECISION_STEP_DEFAULT; @@ -189,7 +192,7 @@ public abstract class NumberFieldMapper extends AbstractFieldM return num == null ? null : num.toString(); } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ShortFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ShortFieldMapper.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ShortFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ShortFieldMapper.java index 6fd494939fe..44b6350a1bf 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ShortFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/ShortFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Field; @@ -35,16 +35,19 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericIntegerAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; import java.util.Map; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -79,8 +82,8 @@ public class ShortFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { ShortFieldMapper.Builder builder = shortField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -214,7 +217,7 @@ public class ShortFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/StringFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java similarity index 91% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/StringFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java index 137c5a4fdac..ef47086751e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/StringFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; @@ -25,19 +25,23 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import java.io.IOException; import java.util.Map; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) */ -public class StringFieldMapper extends AbstractFieldMapper implements IncludeInAllMapper { +public class StringFieldMapper extends AbstractFieldMapper implements AllFieldMapper.IncludeInAll { public static final String CONTENT_TYPE = "string"; @@ -74,8 +78,8 @@ public class StringFieldMapper extends AbstractFieldMapper implements In } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { StringFieldMapper.Builder builder = stringField(name); parseField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -178,7 +182,7 @@ public class StringFieldMapper extends AbstractFieldMapper implements In return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentTypeParsers.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java similarity index 94% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentTypeParsers.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java index acfa1c93c3d..ac6c9794f5e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentTypeParsers.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java @@ -17,13 +17,15 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.core; import org.apache.lucene.document.Field; import org.elasticsearch.common.Strings; import org.elasticsearch.common.joda.FormatDateTimeFormatter; import org.elasticsearch.common.joda.Joda; import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.mapper.ContentPath; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; import java.util.Map; @@ -33,9 +35,9 @@ import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; /** * @author kimchy (shay.banon) */ -public class XContentTypeParsers { +public class TypeParsers { - public static void parseNumberField(NumberFieldMapper.Builder builder, String name, Map numberNode, XContentMapper.TypeParser.ParserContext parserContext) { + public static void parseNumberField(NumberFieldMapper.Builder builder, String name, Map numberNode, Mapper.TypeParser.ParserContext parserContext) { parseField(builder, name, numberNode, parserContext); for (Map.Entry entry : numberNode.entrySet()) { String propName = Strings.toUnderscoreCase(entry.getKey()); @@ -48,7 +50,7 @@ public class XContentTypeParsers { } } - public static void parseField(AbstractFieldMapper.Builder builder, String name, Map fieldNode, XContentMapper.TypeParser.ParserContext parserContext) { + public static void parseField(AbstractFieldMapper.Builder builder, String name, Map fieldNode, Mapper.TypeParser.ParserContext parserContext) { for (Map.Entry entry : fieldNode.entrySet()) { String propName = Strings.toUnderscoreCase(entry.getKey()); Object propNode = entry.getValue(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/default-mapping.json b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/default-mapping.json similarity index 100% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/default-mapping.json rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/default-mapping.json diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPoint.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPoint.java similarity index 96% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPoint.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPoint.java index 28bcb186d37..ab7dbc5db93 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPoint.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPoint.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.elasticsearch.index.search.geo.GeoHashUtils; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointDocFieldData.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointDocFieldData.java similarity index 97% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointDocFieldData.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointDocFieldData.java index 01de18796f1..0c612bc9d14 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointDocFieldData.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointDocFieldData.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.field.data.DocFieldData; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldData.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldData.java similarity index 99% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldData.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldData.java index 7ac78ddcb8c..705a1c94910 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldData.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldData.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.apache.lucene.index.IndexReader; import org.elasticsearch.common.RamUsage; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldDataType.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldDataType.java similarity index 97% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldDataType.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldDataType.java index c4b2e87edfe..7b8068e5494 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldDataType.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldDataType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.FieldComparator; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java similarity index 93% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java index f4881a27c7f..079ce2e0430 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/GeoPointFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/GeoPointFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.apache.lucene.document.Field; import org.elasticsearch.common.Strings; @@ -26,17 +26,24 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.support.XContentMapValues; import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.FieldMapperListener; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; -import org.elasticsearch.index.mapper.xcontent.*; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; +import org.elasticsearch.index.mapper.core.NumberFieldMapper; +import org.elasticsearch.index.mapper.core.StringFieldMapper; +import org.elasticsearch.index.mapper.object.ArrayValueMapperParser; import org.elasticsearch.index.search.geo.GeoHashUtils; import java.io.IOException; import java.util.Map; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * Parsing: We handle: @@ -50,7 +57,7 @@ import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; * * @author kimchy (shay.banon) */ -public class GeoPointFieldMapper implements XContentMapper, ArrayValueMapperParser { +public class GeoPointFieldMapper implements Mapper, ArrayValueMapperParser { public static final String CONTENT_TYPE = "geo_point"; @@ -71,7 +78,7 @@ public class GeoPointFieldMapper implements XContentMapper, ArrayValueMapperPars public static final int PRECISION = GeoHashUtils.PRECISION; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { private ContentPath.Type pathType = Defaults.PATH_TYPE; @@ -154,8 +161,8 @@ public class GeoPointFieldMapper implements XContentMapper, ArrayValueMapperPars } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name); for (Map.Entry entry : node.entrySet()) { @@ -354,7 +361,7 @@ public class GeoPointFieldMapper implements XContentMapper, ArrayValueMapperPars } } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // TODO } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/MultiValueGeoPointFieldData.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/MultiValueGeoPointFieldData.java similarity index 99% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/MultiValueGeoPointFieldData.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/MultiValueGeoPointFieldData.java index 739c816b0c8..561308c3010 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/MultiValueGeoPointFieldData.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/MultiValueGeoPointFieldData.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.elasticsearch.common.RamUsage; import org.elasticsearch.common.thread.ThreadLocals; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/SingleValueGeoPointFieldData.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/SingleValueGeoPointFieldData.java similarity index 98% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/SingleValueGeoPointFieldData.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/SingleValueGeoPointFieldData.java index 25d00a68c1d..311ad4c4172 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/geo/SingleValueGeoPointFieldData.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/geo/SingleValueGeoPointFieldData.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geo; +package org.elasticsearch.index.mapper.geo; import org.elasticsearch.common.RamUsage; import org.elasticsearch.common.thread.ThreadLocals; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AllFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java similarity index 89% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AllFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java index 55470b5e294..648b77cdbb3 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AllFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AllFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Field; @@ -29,7 +29,12 @@ import org.elasticsearch.common.lucene.all.AllField; import org.elasticsearch.common.lucene.all.AllTermQuery; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; @@ -37,17 +42,25 @@ import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class AllFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.AllFieldMapper { +public class AllFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public interface IncludeInAll extends Mapper { + + void includeInAll(Boolean includeInAll); + + void includeInAllIfNotSet(Boolean includeInAll); + } + + public static final String NAME = "_all"; public static final String CONTENT_TYPE = "_all"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.AllFieldMapper.NAME; - public static final String INDEX_NAME = org.elasticsearch.index.mapper.AllFieldMapper.NAME; + public static final String NAME = AllFieldMapper.NAME; + public static final String INDEX_NAME = AllFieldMapper.NAME; public static final boolean ENABLED = true; } - public static class Builder extends AbstractFieldMapper.Builder { private boolean enabled = Defaults.ENABLED; @@ -183,7 +196,7 @@ public class AllFieldMapper extends AbstractFieldMapper implements org.ela return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AnalyzerMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AnalyzerMapper.java similarity index 88% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AnalyzerMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AnalyzerMapper.java index 02306d314fb..248a6ad9d9c 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/AnalyzerMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/AnalyzerMapper.java @@ -17,20 +17,24 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.analysis.Analyzer; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.mapper.FieldMapperListener; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class AnalyzerMapper implements XContentMapper { +public class AnalyzerMapper implements Mapper, InternalMapper { public static final String CONTENT_TYPE = "_analyzer"; @@ -38,7 +42,7 @@ public class AnalyzerMapper implements XContentMapper { public static final String PATH = "_analyzer"; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { private String field = Defaults.PATH; @@ -104,7 +108,7 @@ public class AnalyzerMapper implements XContentMapper { context.analyzer(analyzer); } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { } @Override public void traverse(FieldMapperListener fieldMapperListener) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BoostFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/BoostFieldMapper.java similarity index 93% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BoostFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/BoostFieldMapper.java index 49d936d587f..329ea79a062 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/BoostFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/BoostFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; @@ -33,7 +33,13 @@ import org.elasticsearch.index.analysis.NamedAnalyzer; import org.elasticsearch.index.analysis.NumericFloatAnalyzer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.FloatFieldMapper; +import org.elasticsearch.index.mapper.core.NumberFieldMapper; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; @@ -41,7 +47,7 @@ import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class BoostFieldMapper extends NumberFieldMapper implements org.elasticsearch.index.mapper.BoostFieldMapper { +public class BoostFieldMapper extends NumberFieldMapper implements InternalMapper { public static final String CONTENT_TYPE = "_boost"; @@ -77,7 +83,7 @@ public class BoostFieldMapper extends NumberFieldMapper implements org.el private final Float nullValue; - protected BoostFieldMapper() { + public BoostFieldMapper() { this(Defaults.NAME, Defaults.NAME); } @@ -209,7 +215,7 @@ public class BoostFieldMapper extends NumberFieldMapper implements org.el return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IdFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java similarity index 88% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IdFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java index fe8a66adc04..47e099b4b63 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IdFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IdFieldMapper.java @@ -17,28 +17,35 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class IdFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.IdFieldMapper { +public class IdFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_id"; public static final String CONTENT_TYPE = "_id"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = "_id"; - public static final String INDEX_NAME = "_id"; + public static final String NAME = IdFieldMapper.NAME; + public static final String INDEX_NAME = IdFieldMapper.NAME; public static final Field.Index INDEX = Field.Index.NO; public static final Field.Store STORE = Field.Store.NO; public static final boolean OMIT_NORMS = true; @@ -61,11 +68,11 @@ public class IdFieldMapper extends AbstractFieldMapper implements org.el } } - protected IdFieldMapper() { + public IdFieldMapper() { this(Defaults.NAME, Defaults.INDEX_NAME, Defaults.INDEX); } - protected IdFieldMapper(Field.Index index) { + public IdFieldMapper(Field.Index index) { this(Defaults.NAME, Defaults.INDEX_NAME, index); } @@ -80,7 +87,7 @@ public class IdFieldMapper extends AbstractFieldMapper implements org.el Lucene.KEYWORD_ANALYZER, Lucene.KEYWORD_ANALYZER); } - @Override public String value(Document document) { + public String value(Document document) { Fieldable field = document.getFieldable(names.indexName()); return field == null ? null : value(field); } @@ -146,7 +153,7 @@ public class IdFieldMapper extends AbstractFieldMapper implements org.el return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IndexFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java similarity index 86% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IndexFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java index 0159b42e008..77b8e3976e2 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IndexFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/IndexFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -25,20 +25,27 @@ import org.apache.lucene.document.Fieldable; import org.apache.lucene.index.Term; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class IndexFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.IndexFieldMapper { +public class IndexFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_index"; public static final String CONTENT_TYPE = "_index"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.IndexFieldMapper.NAME; - public static final String INDEX_NAME = org.elasticsearch.index.mapper.IndexFieldMapper.NAME; + public static final String NAME = IndexFieldMapper.NAME; + public static final String INDEX_NAME = IndexFieldMapper.NAME; public static final Field.Index INDEX = Field.Index.NOT_ANALYZED; public static final Field.Store STORE = Field.Store.NO; public static final boolean OMIT_NORMS = true; @@ -71,7 +78,7 @@ public class IndexFieldMapper extends AbstractFieldMapper implements org private final boolean enabled; - protected IndexFieldMapper() { + public IndexFieldMapper() { this(Defaults.NAME, Defaults.INDEX_NAME); } @@ -87,11 +94,11 @@ public class IndexFieldMapper extends AbstractFieldMapper implements org this.enabled = enabled; } - @Override public boolean enabled() { + public boolean enabled() { return this.enabled; } - @Override public String value(Document document) { + public String value(Document document) { Fieldable field = document.getFieldable(names.indexName()); return field == null ? null : value(field); } @@ -112,7 +119,7 @@ public class IndexFieldMapper extends AbstractFieldMapper implements org return value; } - @Override public Term term(String value) { + public Term term(String value) { return termFactory.createTerm(value); } @@ -143,7 +150,7 @@ public class IndexFieldMapper extends AbstractFieldMapper implements org return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParentFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/ParentFieldMapper.java similarity index 87% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParentFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/ParentFieldMapper.java index f1f5e964ddc..1b5fdebb6f5 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ParentFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/ParentFieldMapper.java @@ -17,34 +17,41 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.apache.lucene.index.Term; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.Uid; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class ParentFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.ParentFieldMapper { +public class ParentFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_parent"; public static final String CONTENT_TYPE = "_parent"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.ParentFieldMapper.NAME; + public static final String NAME = ParentFieldMapper.NAME; public static final Field.Index INDEX = Field.Index.NOT_ANALYZED; public static final boolean OMIT_NORMS = true; public static final boolean OMIT_TERM_FREQ_AND_POSITIONS = true; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { protected String indexName; @@ -76,7 +83,7 @@ public class ParentFieldMapper extends AbstractFieldMapper implements org.e this.type = type; } - @Override public String type() { + public String type() { return type; } @@ -135,11 +142,11 @@ public class ParentFieldMapper extends AbstractFieldMapper implements org.e return value; } - @Override public Term term(String type, String id) { + public Term term(String type, String id) { return term(Uid.createUid(type, id)); } - @Override public Term term(String uid) { + public Term term(String uid) { return termFactory.createTerm(uid); } @@ -154,7 +161,7 @@ public class ParentFieldMapper extends AbstractFieldMapper implements org.e return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RoutingFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java similarity index 90% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RoutingFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java index 0f37012604e..aab1c5b8aed 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RoutingFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/RoutingFieldMapper.java @@ -17,22 +17,27 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class RoutingFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.RoutingFieldMapper { +public class RoutingFieldMapper extends AbstractFieldMapper implements InternalMapper { public static final String CONTENT_TYPE = "_routing"; @@ -77,7 +82,7 @@ public class RoutingFieldMapper extends AbstractFieldMapper implements o private final String path; - protected RoutingFieldMapper() { + public RoutingFieldMapper() { this(Defaults.STORE, Defaults.INDEX, Defaults.REQUIRED, Defaults.PATH); } @@ -92,15 +97,15 @@ public class RoutingFieldMapper extends AbstractFieldMapper implements o this.required = true; } - @Override public boolean required() { + public boolean required() { return this.required; } - @Override public String path() { + public String path() { return this.path; } - @Override public String value(Document document) { + public String value(Document document) { Fieldable field = document.getFieldable(names.indexName()); return field == null ? null : value(field); } @@ -175,7 +180,7 @@ public class RoutingFieldMapper extends AbstractFieldMapper implements o return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SizeFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java similarity index 88% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SizeFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java index 507d28c9b1a..6c5b72ed0ff 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SizeFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SizeFieldMapper.java @@ -17,12 +17,16 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.IntegerFieldMapper; import java.io.IOException; @@ -35,7 +39,7 @@ public class SizeFieldMapper extends IntegerFieldMapper { public static final boolean ENABLED = false; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { protected boolean enabled = Defaults.ENABLED; @@ -103,7 +107,7 @@ public class SizeFieldMapper extends IntegerFieldMapper { return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // maybe allow to change enabled? But then we need to figure out null for default value } } \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SourceFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java similarity index 87% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SourceFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java index 9c5b1e22581..61516c6b8df 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/SourceFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldMapper.java @@ -17,9 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; -import org.apache.lucene.document.*; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.FieldSelector; +import org.apache.lucene.document.FieldSelectorResult; +import org.apache.lucene.document.Fieldable; import org.elasticsearch.ElasticSearchParseException; import org.elasticsearch.common.compress.lzf.LZF; import org.elasticsearch.common.compress.lzf.LZFDecoder; @@ -27,19 +31,26 @@ import org.elasticsearch.common.compress.lzf.LZFEncoder; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class SourceFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.SourceFieldMapper { +public class SourceFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_source"; public static final String CONTENT_TYPE = "_source"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.SourceFieldMapper.NAME; + public static final String NAME = SourceFieldMapper.NAME; public static final boolean ENABLED = true; public static final long COMPRESS_THRESHOLD = -1; public static final Field.Index INDEX = Field.Index.NO; @@ -48,7 +59,7 @@ public class SourceFieldMapper extends AbstractFieldMapper implements or public static final boolean OMIT_TERM_FREQ_AND_POSITIONS = true; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { private boolean enabled = Defaults.ENABLED; @@ -88,7 +99,7 @@ public class SourceFieldMapper extends AbstractFieldMapper implements or private final SourceFieldSelector fieldSelector; - protected SourceFieldMapper() { + public SourceFieldMapper() { this(Defaults.NAME, Defaults.ENABLED, null, -1); } @@ -129,12 +140,12 @@ public class SourceFieldMapper extends AbstractFieldMapper implements or return new Field(names().indexName(), data); } - @Override public byte[] value(Document document) { + public byte[] value(Document document) { Fieldable field = document.getFieldable(names.indexName()); return field == null ? null : value(field); } - @Override public byte[] nativeValue(Fieldable field) { + public byte[] nativeValue(Fieldable field) { return field.getBinaryValue(); } @@ -204,7 +215,7 @@ public class SourceFieldMapper extends AbstractFieldMapper implements or return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { SourceFieldMapper sourceMergeWith = (SourceFieldMapper) mergeWith; if (!mergeContext.mergeFlags().simulate()) { if (sourceMergeWith.compress != null) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldSelector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldSelector.java similarity index 96% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldSelector.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldSelector.java index 9187cb85d11..d6d25b02b4c 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/SourceFieldSelector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/SourceFieldSelector.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.document.FieldSelectorResult; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/TypeFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java similarity index 87% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/TypeFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java index 7f24e43acd0..41a3557efd9 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/TypeFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/TypeFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -30,9 +30,13 @@ import org.apache.lucene.search.Query; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.lucene.search.TermFilter; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; @@ -40,13 +44,17 @@ import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class TypeFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.TypeFieldMapper { +public class TypeFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_type"; + + public static final Term TERM_FACTORY = new Term(NAME, ""); public static final String CONTENT_TYPE = "_type"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.TypeFieldMapper.NAME; - public static final String INDEX_NAME = org.elasticsearch.index.mapper.TypeFieldMapper.NAME; + public static final String NAME = TypeFieldMapper.NAME; + public static final String INDEX_NAME = TypeFieldMapper.NAME; public static final Field.Index INDEX = Field.Index.NOT_ANALYZED; public static final Field.Store STORE = Field.Store.NO; public static final boolean OMIT_NORMS = true; @@ -69,7 +77,7 @@ public class TypeFieldMapper extends AbstractFieldMapper implements org. } } - protected TypeFieldMapper() { + public TypeFieldMapper() { this(Defaults.NAME, Defaults.INDEX_NAME); } @@ -84,7 +92,7 @@ public class TypeFieldMapper extends AbstractFieldMapper implements org. Lucene.KEYWORD_ANALYZER, Lucene.KEYWORD_ANALYZER); } - @Override public String value(Document document) { + public String value(Document document) { Fieldable field = document.getFieldable(names.indexName()); return field == null ? null : value(field); } @@ -105,7 +113,7 @@ public class TypeFieldMapper extends AbstractFieldMapper implements org. return value; } - @Override public Term term(String value) { + public Term term(String value) { return termFactory.createTerm(value); } @@ -151,7 +159,7 @@ public class TypeFieldMapper extends AbstractFieldMapper implements org. return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/UidFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java similarity index 83% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/UidFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java index f39a2a7933d..7a8848af888 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/UidFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/internal/UidFieldMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.internal; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; @@ -25,27 +25,36 @@ import org.apache.lucene.index.Term; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.lucene.uid.UidField; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.InternalMapper; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.Uid; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; import java.io.IOException; /** * @author kimchy (shay.banon) */ -public class UidFieldMapper extends AbstractFieldMapper implements org.elasticsearch.index.mapper.UidFieldMapper { +public class UidFieldMapper extends AbstractFieldMapper implements InternalMapper { + + public static final String NAME = "_uid"; + + public static final Term TERM_FACTORY = new Term(NAME, ""); public static final String CONTENT_TYPE = "_uid"; public static class Defaults extends AbstractFieldMapper.Defaults { - public static final String NAME = org.elasticsearch.index.mapper.UidFieldMapper.NAME; + public static final String NAME = UidFieldMapper.NAME; public static final Field.Index INDEX = Field.Index.NOT_ANALYZED; public static final boolean OMIT_NORMS = true; public static final boolean OMIT_TERM_FREQ_AND_POSITIONS = false; // we store payload } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { protected String indexName; @@ -65,7 +74,7 @@ public class UidFieldMapper extends AbstractFieldMapper implements org.elas } }; - protected UidFieldMapper() { + public UidFieldMapper() { this(Defaults.NAME); } @@ -107,11 +116,11 @@ public class UidFieldMapper extends AbstractFieldMapper implements org.elas return value; } - @Override public Term term(String type, String id) { + public Term term(String type, String id) { return term(Uid.createUid(type, id)); } - @Override public Term term(String uid) { + public Term term(String uid) { return termFactory.createTerm(uid); } @@ -128,7 +137,7 @@ public class UidFieldMapper extends AbstractFieldMapper implements org.elas return builder; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // do nothing here, no merging, but also no exception } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ip/IpFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ip/IpFieldMapper.java similarity index 92% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ip/IpFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ip/IpFieldMapper.java index bab084a2271..5332e064a89 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ip/IpFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/ip/IpFieldMapper.java @@ -17,12 +17,16 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.ip; +package org.elasticsearch.index.mapper.ip; import org.apache.lucene.analysis.NumericTokenStream; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; -import org.apache.lucene.search.*; +import org.apache.lucene.search.Filter; +import org.apache.lucene.search.FuzzyQuery; +import org.apache.lucene.search.NumericRangeFilter; +import org.apache.lucene.search.NumericRangeQuery; +import org.apache.lucene.search.Query; import org.apache.lucene.util.NumericUtils; import org.elasticsearch.ElasticSearchIllegalArgumentException; import org.elasticsearch.common.Numbers; @@ -34,9 +38,13 @@ import org.elasticsearch.index.analysis.NumericAnalyzer; import org.elasticsearch.index.analysis.NumericTokenizer; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.field.data.FieldDataType; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; -import org.elasticsearch.index.mapper.xcontent.*; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.LongFieldMapper; +import org.elasticsearch.index.mapper.core.NumberFieldMapper; import org.elasticsearch.index.search.NumericRangeFieldDataFilter; import java.io.IOException; @@ -44,8 +52,8 @@ import java.io.Reader; import java.util.Map; import java.util.regex.Pattern; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -106,8 +114,8 @@ public class IpFieldMapper extends NumberFieldMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { IpFieldMapper.Builder builder = ipField(name); parseNumberField(builder, name, node, parserContext); for (Map.Entry entry : node.entrySet()) { @@ -236,7 +244,7 @@ public class IpFieldMapper extends NumberFieldMapper { return CONTENT_TYPE; } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { super.merge(mergeWith, mergeContext); if (!this.getClass().equals(mergeWith.getClass())) { return; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/MultiFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/multifield/MultiFieldMapper.java similarity index 76% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/MultiFieldMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/multifield/MultiFieldMapper.java index 331a0e0b3cf..5a7b8e5156f 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/MultiFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/multifield/MultiFieldMapper.java @@ -17,15 +17,21 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.multifield; import org.elasticsearch.common.Strings; import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.FieldMapperListener; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import java.io.IOException; import java.util.HashMap; @@ -34,13 +40,13 @@ import java.util.Map; import static org.elasticsearch.common.collect.Lists.*; import static org.elasticsearch.common.collect.MapBuilder.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) */ -public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { +public class MultiFieldMapper implements Mapper, AllFieldMapper.IncludeInAll { public static final String CONTENT_TYPE = "multi_field"; @@ -48,13 +54,13 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { public static final ContentPath.Type PATH_TYPE = ContentPath.Type.FULL; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { private ContentPath.Type pathType = Defaults.PATH_TYPE; - private final List mappersBuilders = newArrayList(); + private final List mappersBuilders = newArrayList(); - private XContentMapper.Builder defaultMapperBuilder; + private Mapper.Builder defaultMapperBuilder; public Builder(String name) { super(name); @@ -66,8 +72,8 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { return this; } - public Builder add(XContentMapper.Builder builder) { - if (builder.name.equals(name)) { + public Builder add(Mapper.Builder builder) { + if (builder.name().equals(name)) { defaultMapperBuilder = builder; } else { mappersBuilders.add(builder); @@ -79,15 +85,15 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { ContentPath.Type origPathType = context.path().pathType(); context.path().pathType(pathType); - XContentMapper defaultMapper = null; + Mapper defaultMapper = null; if (defaultMapperBuilder != null) { defaultMapper = defaultMapperBuilder.build(context); } context.path().add(name); - Map mappers = new HashMap(); - for (XContentMapper.Builder builder : mappersBuilders) { - XContentMapper mapper = builder.build(context); + Map mappers = new HashMap(); + for (Mapper.Builder builder : mappersBuilders) { + Mapper mapper = builder.build(context); mappers.put(mapper.name(), mapper); } context.path().remove(); @@ -98,8 +104,8 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { MultiFieldMapper.Builder builder = multiField(name); for (Map.Entry entry : node.entrySet()) { @@ -121,7 +127,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { throw new MapperParsingException("No type specified for property [" + propName + "]"); } - XContentMapper.TypeParser typeParser = parserContext.typeParser(type); + Mapper.TypeParser typeParser = parserContext.typeParser(type); if (typeParser == null) { throw new MapperParsingException("No handler for type [" + type + "] declared on field [" + fieldName + "]"); } @@ -139,24 +145,24 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { private final Object mutex = new Object(); - private volatile ImmutableMap mappers = ImmutableMap.of(); + private volatile ImmutableMap mappers = ImmutableMap.of(); - private volatile XContentMapper defaultMapper; + private volatile Mapper defaultMapper; - public MultiFieldMapper(String name, ContentPath.Type pathType, XContentMapper defaultMapper) { - this(name, pathType, new HashMap(), defaultMapper); + public MultiFieldMapper(String name, ContentPath.Type pathType, Mapper defaultMapper) { + this(name, pathType, new HashMap(), defaultMapper); } - public MultiFieldMapper(String name, ContentPath.Type pathType, Map mappers, XContentMapper defaultMapper) { + public MultiFieldMapper(String name, ContentPath.Type pathType, Map mappers, Mapper defaultMapper) { this.name = name; this.pathType = pathType; this.mappers = ImmutableMap.copyOf(mappers); this.defaultMapper = defaultMapper; // we disable the all in mappers, only the default one can be added - for (XContentMapper mapper : mappers.values()) { - if (mapper instanceof IncludeInAllMapper) { - ((IncludeInAllMapper) mapper).includeInAll(false); + for (Mapper mapper : mappers.values()) { + if (mapper instanceof AllFieldMapper.IncludeInAll) { + ((AllFieldMapper.IncludeInAll) mapper).includeInAll(false); } } } @@ -166,14 +172,14 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { } @Override public void includeInAll(Boolean includeInAll) { - if (includeInAll != null && defaultMapper != null && (defaultMapper instanceof IncludeInAllMapper)) { - ((IncludeInAllMapper) defaultMapper).includeInAll(includeInAll); + if (includeInAll != null && defaultMapper != null && (defaultMapper instanceof AllFieldMapper.IncludeInAll)) { + ((AllFieldMapper.IncludeInAll) defaultMapper).includeInAll(includeInAll); } } @Override public void includeInAllIfNotSet(Boolean includeInAll) { - if (includeInAll != null && defaultMapper != null && (defaultMapper instanceof IncludeInAllMapper)) { - ((IncludeInAllMapper) defaultMapper).includeInAllIfNotSet(includeInAll); + if (includeInAll != null && defaultMapper != null && (defaultMapper instanceof AllFieldMapper.IncludeInAll)) { + ((AllFieldMapper.IncludeInAll) defaultMapper).includeInAllIfNotSet(includeInAll); } } @@ -181,11 +187,11 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { return pathType; } - public XContentMapper defaultMapper() { + public Mapper defaultMapper() { return this.defaultMapper; } - public ImmutableMap mappers() { + public ImmutableMap mappers() { return this.mappers; } @@ -199,7 +205,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { } context.path().add(name); - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.parse(context); } context.path().remove(); @@ -207,7 +213,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { context.path().pathType(origPathType); } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { if (!(mergeWith instanceof MultiFieldMapper) && !(mergeWith instanceof AbstractFieldMapper)) { mergeContext.addConflict("Can't merge a non multi_field / non simple mapping [" + mergeWith.name() + "] with a multi_field mapping [" + name() + "]"); return; @@ -238,14 +244,14 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { } // merge all the other mappers - for (XContentMapper mergeWithMapper : mergeWithMultiField.mappers.values()) { - XContentMapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); + for (Mapper mergeWithMapper : mergeWithMultiField.mappers.values()) { + Mapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); if (mergeIntoMapper == null) { // no mapping, simply add it if not simulating if (!mergeContext.mergeFlags().simulate()) { // disable the mapper from being in all, only the default mapper is in all - if (mergeWithMapper instanceof IncludeInAllMapper) { - ((IncludeInAllMapper) mergeWithMapper).includeInAll(false); + if (mergeWithMapper instanceof AllFieldMapper.IncludeInAll) { + ((AllFieldMapper.IncludeInAll) mergeWithMapper).includeInAll(false); } mappers = newMapBuilder(mappers).put(mergeWithMapper.name(), mergeWithMapper).immutableMap(); if (mergeWithMapper instanceof AbstractFieldMapper) { @@ -264,7 +270,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { if (defaultMapper != null) { defaultMapper.close(); } - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.close(); } } @@ -273,7 +279,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { if (defaultMapper != null) { defaultMapper.traverse(fieldMapperListener); } - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.traverse(fieldMapperListener); } } @@ -289,7 +295,7 @@ public class MultiFieldMapper implements XContentMapper, IncludeInAllMapper { if (defaultMapper != null) { defaultMapper.toXContent(builder, params); } - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.toXContent(builder, params); } builder.endObject(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ArrayValueMapperParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ArrayValueMapperParser.java similarity index 95% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ArrayValueMapperParser.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ArrayValueMapperParser.java index bdd0e0b9500..84ffd89701f 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ArrayValueMapperParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ArrayValueMapperParser.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.object; /** * A marker interface indicating that this mapper can handle array value, and the array diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DynamicTemplate.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/DynamicTemplate.java similarity index 98% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DynamicTemplate.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/DynamicTemplate.java index a07ffb78e73..127018e3efb 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/DynamicTemplate.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/DynamicTemplate.java @@ -17,12 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.object; import org.elasticsearch.ElasticSearchIllegalArgumentException; import org.elasticsearch.common.Strings; import org.elasticsearch.common.collect.Maps; import org.elasticsearch.common.regex.Regex; +import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.MapperParsingException; import java.util.ArrayList; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ObjectMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java similarity index 84% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ObjectMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java index 8135557a5e6..75116a38ef2 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/ObjectMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/ObjectMapper.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.object; import org.elasticsearch.ElasticSearchIllegalStateException; import org.elasticsearch.common.Strings; @@ -28,6 +28,9 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.mapper.core.AbstractFieldMapper; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; +import org.elasticsearch.index.mapper.multifield.MultiFieldMapper; import java.io.IOException; import java.util.HashMap; @@ -39,14 +42,14 @@ import static org.elasticsearch.common.collect.ImmutableMap.*; import static org.elasticsearch.common.collect.Lists.*; import static org.elasticsearch.common.collect.MapBuilder.*; import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) */ @ThreadSafe -public class ObjectMapper implements XContentMapper, IncludeInAllMapper { +public class ObjectMapper implements Mapper, AllFieldMapper.IncludeInAll { public static final String CONTENT_TYPE = "object"; @@ -62,7 +65,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { STRICT } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { protected boolean enabled = Defaults.ENABLED; @@ -72,7 +75,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { protected Boolean includeInAll; - protected final List mappersBuilders = newArrayList(); + protected final List mappersBuilders = newArrayList(); public Builder(String name) { super(name); @@ -99,7 +102,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { return builder; } - public T add(XContentMapper.Builder builder) { + public T add(Mapper.Builder builder) { mappersBuilders.add(builder); return this.builder; } @@ -109,9 +112,9 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { context.path().pathType(pathType); context.path().add(name); - Map mappers = new HashMap(); - for (XContentMapper.Builder builder : mappersBuilders) { - XContentMapper mapper = builder.build(context); + Map mappers = new HashMap(); + for (Mapper.Builder builder : mappersBuilders) { + Mapper mapper = builder.build(context); mappers.put(mapper.name(), mapper); } ObjectMapper objectMapper = createMapper(name, enabled, dynamic, pathType, mappers); @@ -124,13 +127,13 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { return (Y) objectMapper; } - protected ObjectMapper createMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { + protected ObjectMapper createMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { return new ObjectMapper(name, enabled, dynamic, pathType, mappers); } } - public static class TypeParser implements XContentMapper.TypeParser { - @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + public static class TypeParser implements Mapper.TypeParser { + @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { Map objectNode = node; ObjectMapper.Builder builder = createBuilder(name); @@ -185,7 +188,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } } - XContentMapper.TypeParser typeParser = parserContext.typeParser(type); + Mapper.TypeParser typeParser = parserContext.typeParser(type); if (typeParser == null) { throw new MapperParsingException("No handler for type [" + type + "] declared on field [" + propName + "]"); } @@ -212,7 +215,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { private Boolean includeInAll; - private volatile ImmutableMap mappers = ImmutableMap.of(); + private volatile ImmutableMap mappers = ImmutableMap.of(); private final Object mutex = new Object(); @@ -225,7 +228,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { this(name, enabled, dynamic, pathType, null); } - ObjectMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { + ObjectMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { this.name = name; this.enabled = enabled; this.dynamic = dynamic; @@ -245,9 +248,9 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } this.includeInAll = includeInAll; // when called from outside, apply this on all the inner mappers - for (XContentMapper mapper : mappers.values()) { - if (mapper instanceof IncludeInAllMapper) { - ((IncludeInAllMapper) mapper).includeInAll(includeInAll); + for (Mapper mapper : mappers.values()) { + if (mapper instanceof AllFieldMapper.IncludeInAll) { + ((AllFieldMapper.IncludeInAll) mapper).includeInAll(includeInAll); } } } @@ -257,16 +260,16 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { this.includeInAll = includeInAll; } // when called from outside, apply this on all the inner mappers - for (XContentMapper mapper : mappers.values()) { - if (mapper instanceof IncludeInAllMapper) { - ((IncludeInAllMapper) mapper).includeInAllIfNotSet(includeInAll); + for (Mapper mapper : mappers.values()) { + if (mapper instanceof AllFieldMapper.IncludeInAll) { + ((AllFieldMapper.IncludeInAll) mapper).includeInAllIfNotSet(includeInAll); } } } - public ObjectMapper putMapper(XContentMapper mapper) { - if (mapper instanceof IncludeInAllMapper) { - ((IncludeInAllMapper) mapper).includeInAllIfNotSet(includeInAll); + public ObjectMapper putMapper(Mapper mapper) { + if (mapper instanceof AllFieldMapper.IncludeInAll) { + ((AllFieldMapper.IncludeInAll) mapper).includeInAllIfNotSet(includeInAll); } synchronized (mutex) { mappers = newMapBuilder(mappers).put(mapper.name(), mapper).immutableMap(); @@ -275,7 +278,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } @Override public void traverse(FieldMapperListener fieldMapperListener) { - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.traverse(fieldMapperListener); } } @@ -330,7 +333,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { private void serializeNullValue(ParseContext context, String lastFieldName) throws IOException { // we can only handle null values if we have mappings for them - XContentMapper mapper = mappers.get(lastFieldName); + Mapper mapper = mappers.get(lastFieldName); if (mapper != null) { mapper.parse(context); } @@ -339,7 +342,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { private void serializeObject(final ParseContext context, String currentFieldName) throws IOException { context.path().add(currentFieldName); - XContentMapper objectMapper = mappers.get(currentFieldName); + Mapper objectMapper = mappers.get(currentFieldName); if (objectMapper != null) { objectMapper.parse(context); } else { @@ -357,9 +360,9 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { if (objectMapper != null) { objectMapper.parse(context); } else { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "object"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "object"); if (builder == null) { - builder = XContentMapperBuilders.object(currentFieldName).enabled(true).dynamic(dynamic).pathType(pathType); + builder = MapperBuilders.object(currentFieldName).enabled(true).dynamic(dynamic).pathType(pathType); } // remove the current field name from path, since the object builder adds it as well... context.path().remove(); @@ -391,7 +394,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } private void serializeArray(ParseContext context, String lastFieldName) throws IOException { - XContentMapper mapper = mappers.get(lastFieldName); + Mapper mapper = mappers.get(lastFieldName); if (mapper != null && mapper instanceof ArrayValueMapperParser) { mapper.parse(context); } else { @@ -414,7 +417,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } private void serializeValue(final ParseContext context, String currentFieldName, XContentParser.Token token) throws IOException { - XContentMapper mapper = mappers.get(currentFieldName); + Mapper mapper = mappers.get(currentFieldName); if (mapper != null) { mapper.parse(context); return; @@ -449,7 +452,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { for (FormatDateTimeFormatter dateTimeFormatter : context.root().dateTimeFormatters()) { try { dateTimeFormatter.parser().parseMillis(text); - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "date"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "date"); if (builder == null) { builder = dateField(currentFieldName).dateTimeFormatter(dateTimeFormatter); } @@ -477,7 +480,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { // } // } if (!resolved) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "string"); if (builder == null) { builder = stringField(currentFieldName); } @@ -487,53 +490,53 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { XContentParser.NumberType numberType = context.parser().numberType(); if (numberType == XContentParser.NumberType.INT) { if (context.parser().estimatedNumberType()) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "long"); if (builder == null) { builder = longField(currentFieldName); } mapper = builder.build(builderContext); } else { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "integer"); + 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) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "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()) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "double"); if (builder == null) { builder = doubleField(currentFieldName); } mapper = builder.build(builderContext); } else { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "float"); + 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) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "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) { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "boolean"); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, "boolean"); if (builder == null) { builder = booleanField(currentFieldName); } mapper = builder.build(builderContext); } else { - XContentMapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, null); + Mapper.Builder builder = context.root().findTemplateBuilder(context, currentFieldName, null); if (builder != null) { mapper = builder.build(builderContext); } else { @@ -553,7 +556,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { if (!(mergeWith instanceof ObjectMapper)) { mergeContext.addConflict("Can't merge a non object mapping [" + mergeWith.name() + "] with an object mapping [" + name() + "]"); return; @@ -563,8 +566,8 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { doMerge(mergeWithObject, mergeContext); synchronized (mutex) { - for (XContentMapper mergeWithMapper : mergeWithObject.mappers.values()) { - XContentMapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); + for (Mapper mergeWithMapper : mergeWithObject.mappers.values()) { + Mapper mergeIntoMapper = mappers.get(mergeWithMapper.name()); if (mergeIntoMapper == null) { // no mapping, simply add it if not simulating if (!mergeContext.mergeFlags().simulate()) { @@ -580,7 +583,7 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { if (!mergeContext.mergeFlags().simulate()) { putMapper(mergeWithMultiField); // now, raise events for all mappers - for (XContentMapper mapper : mergeWithMultiField.mappers().values()) { + for (Mapper mapper : mergeWithMultiField.mappers().values()) { if (mapper instanceof AbstractFieldMapper) { mergeContext.docMapper().addFieldMapper((FieldMapper) mapper); } @@ -599,17 +602,17 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { } @Override public void close() { - for (XContentMapper mapper : mappers.values()) { + for (Mapper mapper : mappers.values()) { mapper.close(); } } @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - toXContent(builder, params, null, XContentMapper.EMPTY_ARRAY); + toXContent(builder, params, null, Mapper.EMPTY_ARRAY); return builder; } - public void toXContent(XContentBuilder builder, Params params, ToXContent custom, XContentMapper... additionalMappers) throws IOException { + public void toXContent(XContentBuilder builder, Params params, ToXContent custom, Mapper... additionalMappers) throws IOException { builder.startObject(name); if (mappers.isEmpty()) { // only write the object content type if there are no properties, otherwise, it is automatically detected builder.field("type", CONTENT_TYPE); @@ -642,23 +645,23 @@ public class ObjectMapper implements XContentMapper, IncludeInAllMapper { doXContent(builder, params); // sort the mappers so we get consistent serialization format - TreeMap sortedMappers = new TreeMap(mappers); + TreeMap sortedMappers = new TreeMap(mappers); // check internal mappers first (this is only relevant for root object) - for (XContentMapper mapper : sortedMappers.values()) { + for (Mapper mapper : sortedMappers.values()) { if (mapper instanceof InternalMapper) { mapper.toXContent(builder, params); } } if (additionalMappers != null) { - for (XContentMapper mapper : additionalMappers) { + for (Mapper mapper : additionalMappers) { mapper.toXContent(builder, params); } } if (!mappers.isEmpty()) { builder.startObject("properties"); - for (XContentMapper mapper : sortedMappers.values()) { + for (Mapper mapper : sortedMappers.values()) { if (!(mapper instanceof InternalMapper)) { mapper.toXContent(builder, params); } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RootObjectMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java similarity index 92% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RootObjectMapper.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java index 5918713cabc..9672b216ff6 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/RootObjectMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/object/RootObjectMapper.java @@ -17,13 +17,19 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.object; import org.elasticsearch.common.collect.Lists; import org.elasticsearch.common.joda.FormatDateTimeFormatter; import org.elasticsearch.common.joda.Joda; +import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.mapper.ContentPath; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.DateFieldMapper; import java.io.IOException; import java.util.Arrays; @@ -31,7 +37,7 @@ import java.util.List; import java.util.Map; import static org.elasticsearch.common.collect.Lists.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; /** * @author kimchy (shay.banon) @@ -92,7 +98,7 @@ public class RootObjectMapper extends ObjectMapper { } - @Override protected ObjectMapper createMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { + @Override protected ObjectMapper createMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers) { FormatDateTimeFormatter[] dates = null; if (dateTimeFormatters == null) { dates = new FormatDateTimeFormatter[0]; @@ -162,7 +168,7 @@ public class RootObjectMapper extends ObjectMapper { private volatile DynamicTemplate dynamicTemplates[]; - RootObjectMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers, + RootObjectMapper(String name, boolean enabled, Dynamic dynamic, ContentPath.Type pathType, Map mappers, FormatDateTimeFormatter[] dateTimeFormatters, DynamicTemplate dynamicTemplates[]) { super(name, enabled, dynamic, pathType, mappers); this.dynamicTemplates = dynamicTemplates; @@ -173,12 +179,12 @@ public class RootObjectMapper extends ObjectMapper { return dateTimeFormatters; } - public XContentMapper.Builder findTemplateBuilder(ParseContext context, String name, String dynamicType) { + public Mapper.Builder findTemplateBuilder(ParseContext context, String name, String dynamicType) { DynamicTemplate dynamicTemplate = findTemplate(context.path(), name, dynamicType); if (dynamicTemplate == null) { return null; } - XContentMapper.TypeParser.ParserContext parserContext = context.docMapperParser().parserContext(); + Mapper.TypeParser.ParserContext parserContext = context.docMapperParser().parserContext(); return parserContext.typeParser(dynamicTemplate.mappingType(dynamicType)).parse(name, dynamicTemplate.mappingForName(name, dynamicType), parserContext); } @@ -212,7 +218,7 @@ public class RootObjectMapper extends ObjectMapper { } } - @Override protected void doXContent(XContentBuilder builder, Params params) throws IOException { + @Override protected void doXContent(XContentBuilder builder, ToXContent.Params params) throws IOException { if (dateTimeFormatters != Defaults.DATE_TIME_FORMATTERS) { if (dateTimeFormatters.length > 0) { builder.startArray("date_formats"); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllButSourceFieldSelector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/AllButSourceFieldSelector.java similarity index 92% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllButSourceFieldSelector.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/AllButSourceFieldSelector.java index faf4b8c6145..1353b59583d 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/AllButSourceFieldSelector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/AllButSourceFieldSelector.java @@ -17,10 +17,11 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.index.mapper.selector; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.document.FieldSelectorResult; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; /** * An optimized field selector that loads just the uid and the source. diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/FieldMappersFieldSelector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/FieldMappersFieldSelector.java similarity index 91% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/FieldMappersFieldSelector.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/FieldMappersFieldSelector.java index 88168a2145e..fd21b10b8e0 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/FieldMappersFieldSelector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/FieldMappersFieldSelector.java @@ -17,10 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.index.mapper.selector; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.document.FieldSelectorResult; +import org.elasticsearch.index.mapper.FieldMapper; +import org.elasticsearch.index.mapper.FieldMappers; import java.util.HashSet; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidAndSourceFieldSelector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidAndSourceFieldSelector.java similarity index 90% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidAndSourceFieldSelector.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidAndSourceFieldSelector.java index e87a4952505..42d80a4991e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidAndSourceFieldSelector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidAndSourceFieldSelector.java @@ -17,10 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.index.mapper.selector; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.document.FieldSelectorResult; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; /** * An optimized field selector that loads just the uid and the source. diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldSelector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidFieldSelector.java similarity index 92% rename from modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldSelector.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidFieldSelector.java index 1e1d3b672f7..d999d90076b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/UidFieldSelector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/selector/UidFieldSelector.java @@ -17,10 +17,11 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.index.mapper.selector; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.document.FieldSelectorResult; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; /** * An optimized field selector that loads just the uid. diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IncludeInAllMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IncludeInAllMapper.java deleted file mode 100644 index c95bb153a44..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/IncludeInAllMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.xcontent; - -/** - * @author kimchy (shay.banon) - */ -public interface IncludeInAllMapper extends XContentMapper { - - void includeInAll(Boolean includeInAll); - - void includeInAllIfNotSet(Boolean includeInAll); -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapper.java deleted file mode 100644 index 525597e8319..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapper.java +++ /dev/null @@ -1,601 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.xcontent; - -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.search.Filter; -import org.elasticsearch.common.Booleans; -import org.elasticsearch.common.Nullable; -import org.elasticsearch.common.Preconditions; -import org.elasticsearch.common.collect.ImmutableMap; -import org.elasticsearch.common.compress.CompressedString; -import org.elasticsearch.common.compress.lzf.LZF; -import org.elasticsearch.common.io.stream.BytesStreamInput; -import org.elasticsearch.common.io.stream.CachedStreamInput; -import org.elasticsearch.common.io.stream.LZFStreamInput; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.*; -import org.elasticsearch.index.analysis.NamedAnalyzer; -import org.elasticsearch.index.mapper.*; - -import java.io.IOException; -import java.util.List; - -import static org.elasticsearch.common.collect.Lists.*; - -/** - * @author kimchy (shay.banon) - */ -public class XContentDocumentMapper implements DocumentMapper, ToXContent { - - public static class Builder { - - private UidFieldMapper uidFieldMapper = new UidFieldMapper(); - - private IdFieldMapper idFieldMapper = new IdFieldMapper(); - - private TypeFieldMapper typeFieldMapper = new TypeFieldMapper(); - - private IndexFieldMapper indexFieldMapper = new IndexFieldMapper(); - - private SourceFieldMapper sourceFieldMapper = new SourceFieldMapper(); - private SizeFieldMapper sizeFieldMapper = new SizeFieldMapper(); - - private RoutingFieldMapper routingFieldMapper = new RoutingFieldMapper(); - - private BoostFieldMapper boostFieldMapper = new BoostFieldMapper(); - - private AllFieldMapper allFieldMapper = new AllFieldMapper(); - - private AnalyzerMapper analyzerMapper = new AnalyzerMapper(); - - private ParentFieldMapper parentFieldMapper = null; - - private NamedAnalyzer indexAnalyzer; - - private NamedAnalyzer searchAnalyzer; - - private final String index; - - private final RootObjectMapper rootObjectMapper; - - private ImmutableMap meta = ImmutableMap.of(); - - private XContentMapper.BuilderContext builderContext = new XContentMapper.BuilderContext(new ContentPath(1)); - - public Builder(String index, @Nullable Settings indexSettings, RootObjectMapper.Builder builder) { - this.index = index; - this.rootObjectMapper = builder.build(builderContext); - if (indexSettings != null) { - String idIndexed = indexSettings.get("index.mapping._id.indexed"); - if (idIndexed != null && Booleans.parseBoolean(idIndexed, false)) { - idFieldMapper = new IdFieldMapper(Field.Index.NOT_ANALYZED); - } - } - } - - public Builder meta(ImmutableMap meta) { - this.meta = meta; - return this; - } - - public Builder sourceField(SourceFieldMapper.Builder builder) { - this.sourceFieldMapper = builder.build(builderContext); - return this; - } - - public Builder sizeField(SizeFieldMapper.Builder builder) { - this.sizeFieldMapper = builder.build(builderContext); - return this; - } - - public Builder idField(IdFieldMapper.Builder builder) { - this.idFieldMapper = builder.build(builderContext); - return this; - } - - public Builder uidField(UidFieldMapper.Builder builder) { - this.uidFieldMapper = builder.build(builderContext); - return this; - } - - public Builder typeField(TypeFieldMapper.Builder builder) { - this.typeFieldMapper = builder.build(builderContext); - return this; - } - - public Builder indexField(IndexFieldMapper.Builder builder) { - this.indexFieldMapper = builder.build(builderContext); - return this; - } - - public Builder routingField(RoutingFieldMapper.Builder builder) { - this.routingFieldMapper = builder.build(builderContext); - return this; - } - - public Builder parentFiled(ParentFieldMapper.Builder builder) { - this.parentFieldMapper = builder.build(builderContext); - return this; - } - - public Builder boostField(BoostFieldMapper.Builder builder) { - this.boostFieldMapper = builder.build(builderContext); - return this; - } - - public Builder allField(AllFieldMapper.Builder builder) { - this.allFieldMapper = builder.build(builderContext); - return this; - } - - public Builder analyzerField(AnalyzerMapper.Builder builder) { - this.analyzerMapper = builder.build(builderContext); - return this; - } - - public Builder indexAnalyzer(NamedAnalyzer indexAnalyzer) { - this.indexAnalyzer = indexAnalyzer; - return this; - } - - public boolean hasIndexAnalyzer() { - return indexAnalyzer != null; - } - - public Builder searchAnalyzer(NamedAnalyzer searchAnalyzer) { - this.searchAnalyzer = searchAnalyzer; - return this; - } - - public boolean hasSearchAnalyzer() { - return searchAnalyzer != null; - } - - public XContentDocumentMapper build(XContentDocumentMapperParser docMapperParser) { - Preconditions.checkNotNull(rootObjectMapper, "Mapper builder must have the root object mapper set"); - return new XContentDocumentMapper(index, docMapperParser, rootObjectMapper, meta, uidFieldMapper, idFieldMapper, typeFieldMapper, indexFieldMapper, - sourceFieldMapper, sizeFieldMapper, parentFieldMapper, routingFieldMapper, allFieldMapper, analyzerMapper, indexAnalyzer, searchAnalyzer, boostFieldMapper); - } - } - - - private ThreadLocal cache = new ThreadLocal() { - @Override protected ParseContext initialValue() { - return new ParseContext(index, docMapperParser, XContentDocumentMapper.this, new ContentPath(0)); - } - }; - - private final String index; - - private final String type; - - private final XContentDocumentMapperParser docMapperParser; - - private volatile ImmutableMap meta; - - private volatile CompressedString mappingSource; - - private final UidFieldMapper uidFieldMapper; - - private final IdFieldMapper idFieldMapper; - - private final TypeFieldMapper typeFieldMapper; - - private final IndexFieldMapper indexFieldMapper; - - private final SourceFieldMapper sourceFieldMapper; - private final SizeFieldMapper sizeFieldMapper; - - private final RoutingFieldMapper routingFieldMapper; - - private final ParentFieldMapper parentFieldMapper; - - private final BoostFieldMapper boostFieldMapper; - - private final AllFieldMapper allFieldMapper; - - private final AnalyzerMapper analyzerMapper; - - private final RootObjectMapper rootObjectMapper; - - private final NamedAnalyzer indexAnalyzer; - - private final NamedAnalyzer searchAnalyzer; - - private volatile DocumentFieldMappers fieldMappers; - - private final List fieldMapperListeners = newArrayList(); - - private final Filter typeFilter; - - private final Object mutex = new Object(); - - public XContentDocumentMapper(String index, XContentDocumentMapperParser docMapperParser, - RootObjectMapper rootObjectMapper, - ImmutableMap meta, - UidFieldMapper uidFieldMapper, - IdFieldMapper idFieldMapper, - TypeFieldMapper typeFieldMapper, - IndexFieldMapper indexFieldMapper, - SourceFieldMapper sourceFieldMapper, - SizeFieldMapper sizeFieldMapper, - @Nullable ParentFieldMapper parentFieldMapper, - RoutingFieldMapper routingFieldMapper, - AllFieldMapper allFieldMapper, - AnalyzerMapper analyzerMapper, - NamedAnalyzer indexAnalyzer, NamedAnalyzer searchAnalyzer, - @Nullable BoostFieldMapper boostFieldMapper) { - this.index = index; - this.type = rootObjectMapper.name(); - this.docMapperParser = docMapperParser; - this.meta = meta; - this.rootObjectMapper = rootObjectMapper; - this.uidFieldMapper = uidFieldMapper; - this.idFieldMapper = idFieldMapper; - this.typeFieldMapper = typeFieldMapper; - this.indexFieldMapper = indexFieldMapper; - this.sourceFieldMapper = sourceFieldMapper; - this.sizeFieldMapper = sizeFieldMapper; - this.parentFieldMapper = parentFieldMapper; - this.routingFieldMapper = routingFieldMapper; - this.allFieldMapper = allFieldMapper; - this.analyzerMapper = analyzerMapper; - this.boostFieldMapper = boostFieldMapper; - - this.indexAnalyzer = indexAnalyzer; - this.searchAnalyzer = searchAnalyzer; - - this.typeFilter = typeMapper().fieldFilter(type); - - rootObjectMapper.putMapper(idFieldMapper); - if (boostFieldMapper != null) { - rootObjectMapper.putMapper(boostFieldMapper); - } - if (parentFieldMapper != null) { - rootObjectMapper.putMapper(parentFieldMapper); - // also, mark the routing as required! - routingFieldMapper.markAsRequired(); - } - rootObjectMapper.putMapper(routingFieldMapper); - - final List tempFieldMappers = newArrayList(); - // add the basic ones - if (indexFieldMapper.enabled()) { - tempFieldMappers.add(indexFieldMapper); - } - tempFieldMappers.add(typeFieldMapper); - tempFieldMappers.add(sourceFieldMapper); - tempFieldMappers.add(sizeFieldMapper); - tempFieldMappers.add(uidFieldMapper); - tempFieldMappers.add(allFieldMapper); - // now traverse and get all the statically defined ones - rootObjectMapper.traverse(new FieldMapperListener() { - @Override public void fieldMapper(FieldMapper fieldMapper) { - tempFieldMappers.add(fieldMapper); - } - }); - - this.fieldMappers = new DocumentFieldMappers(this, tempFieldMappers); - - refreshSource(); - } - - @Override public String type() { - return this.type; - } - - @Override public ImmutableMap meta() { - return this.meta; - } - - @Override public CompressedString mappingSource() { - return this.mappingSource; - } - - public RootObjectMapper root() { - return this.rootObjectMapper; - } - - @Override public org.elasticsearch.index.mapper.UidFieldMapper uidMapper() { - return this.uidFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.IdFieldMapper idMapper() { - return this.idFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.IndexFieldMapper indexMapper() { - return this.indexFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.TypeFieldMapper typeMapper() { - return this.typeFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.SourceFieldMapper sourceMapper() { - return this.sourceFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.BoostFieldMapper boostMapper() { - return this.boostFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.AllFieldMapper allFieldMapper() { - return this.allFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.RoutingFieldMapper routingFieldMapper() { - return this.routingFieldMapper; - } - - @Override public org.elasticsearch.index.mapper.ParentFieldMapper parentFieldMapper() { - return this.parentFieldMapper; - } - - @Override public Analyzer indexAnalyzer() { - return this.indexAnalyzer; - } - - @Override public Analyzer searchAnalyzer() { - return this.searchAnalyzer; - } - - @Override public Filter typeFilter() { - return this.typeFilter; - } - - @Override public DocumentFieldMappers mappers() { - return this.fieldMappers; - } - - @Override public ParsedDocument parse(byte[] source) throws MapperParsingException { - return parse(SourceToParse.source(source)); - } - - @Override public ParsedDocument parse(String type, String id, byte[] source) throws MapperParsingException { - return parse(SourceToParse.source(source).type(type).id(id)); - } - - @Override public ParsedDocument parse(SourceToParse source) throws MapperParsingException { - return parse(source, null); - } - - @Override public ParsedDocument parse(SourceToParse source, @Nullable ParseListener listener) throws MapperParsingException { - ParseContext 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 + "]"); - } - source.type(this.type); - - XContentParser parser = source.parser(); - try { - if (parser == null) { - if (LZF.isCompressed(source.source())) { - BytesStreamInput siBytes = new BytesStreamInput(source.source()); - LZFStreamInput siLzf = CachedStreamInput.cachedLzf(siBytes); - XContentType contentType = XContentFactory.xContentType(siLzf); - siLzf.resetToBufferStart(); - parser = XContentFactory.xContent(contentType).createParser(siLzf); - } else { - parser = XContentFactory.xContent(source.source()).createParser(source.source()); - } - } - context.reset(parser, new Document(), type, source.source(), source.flyweight(), listener); - - // will result in START_OBJECT - int countDownTokens = 0; - XContentParser.Token token = parser.nextToken(); - if (token != XContentParser.Token.START_OBJECT) { - throw new MapperParsingException("Malformed content, must start with an object"); - } - token = parser.nextToken(); - if (token != XContentParser.Token.FIELD_NAME) { - throw new MapperParsingException("Malformed content, after first object, either the type field or the actual properties should exist"); - } - if (parser.currentName().equals(type)) { - // first field is the same as the type, this might be because the type is provided, and the object exists within it - // or because there is a valid field that by chance is named as the type - - // Note, in this case, we only handle plain value types, an object type will be analyzed as if it was the type itself - // and other same level fields will be ignored - token = parser.nextToken(); - countDownTokens++; - // commented out, allow for same type with START_OBJECT, we do our best to handle it except for the above corner case -// if (token != XContentParser.Token.START_OBJECT) { -// throw new MapperException("Malformed content, a field with the same name as the type must be an object with the properties/fields within it"); -// } - } - - if (sizeFieldMapper.enabled()) { - context.externalValue(source.source().length); - sizeFieldMapper.parse(context); - } - - if (sourceFieldMapper.enabled()) { - sourceFieldMapper.parse(context); - } - // set the id if we have it so we can validate it later on, also, add the uid if we can - if (source.id() != null) { - context.id(source.id()); - uidFieldMapper.parse(context); - } - typeFieldMapper.parse(context); - if (source.routing() != null) { - context.externalValue(source.routing()); - routingFieldMapper.parse(context); - } - - indexFieldMapper.parse(context); - - rootObjectMapper.parse(context); - - for (int i = 0; i < countDownTokens; i++) { - parser.nextToken(); - } - - // if we did not get the id, we need to parse the uid into the document now, after it was added - if (source.id() == null) { - if (context.id() == null) { - if (!source.flyweight()) { - throw new MapperParsingException("No id found while parsing the content source"); - } - } else { - uidFieldMapper.parse(context); - } - } - if (context.parsedIdState() != ParseContext.ParsedIdState.PARSED) { - if (context.id() == null) { - if (!source.flyweight()) { - throw new MapperParsingException("No id mapping with [_id] found in the content, and not explicitly set"); - } - } else { - // mark it as external, so we can parse it - context.parsedId(ParseContext.ParsedIdState.EXTERNAL); - idFieldMapper.parse(context); - } - } - if (parentFieldMapper != null) { - context.externalValue(source.parent()); - parentFieldMapper.parse(context); - } - analyzerMapper.parse(context); - allFieldMapper.parse(context); - // validate aggregated mappers (TODO: need to be added as a phase to any field mapper) - routingFieldMapper.validate(context, source.routing()); - } catch (IOException e) { - throw new MapperParsingException("Failed to parse", e); - } finally { - // only close the parser when its not provided externally - if (source.parser() == null && parser != null) { - parser.close(); - } - } - ParsedDocument doc = new ParsedDocument(context.uid(), context.id(), context.type(), source.routing(), context.doc(), context.analyzer(), - context.source(), context.mappersAdded()).parent(source.parent()); - // reset the context to free up memory - context.reset(null, null, null, null, false, null); - return doc; - } - - void addFieldMapper(FieldMapper fieldMapper) { - synchronized (mutex) { - fieldMappers = fieldMappers.concat(this, fieldMapper); - for (FieldMapperListener listener : fieldMapperListeners) { - listener.fieldMapper(fieldMapper); - } - } - } - - @Override public void addFieldMapperListener(FieldMapperListener fieldMapperListener, boolean includeExisting) { - synchronized (mutex) { - fieldMapperListeners.add(fieldMapperListener); - if (includeExisting) { - if (indexFieldMapper.enabled()) { - fieldMapperListener.fieldMapper(indexFieldMapper); - } - fieldMapperListener.fieldMapper(sourceFieldMapper); - fieldMapperListener.fieldMapper(sizeFieldMapper); - fieldMapperListener.fieldMapper(typeFieldMapper); - fieldMapperListener.fieldMapper(uidFieldMapper); - fieldMapperListener.fieldMapper(allFieldMapper); - rootObjectMapper.traverse(fieldMapperListener); - } - } - } - - @Override public synchronized MergeResult merge(DocumentMapper mergeWith, MergeFlags mergeFlags) { - XContentDocumentMapper xContentMergeWith = (XContentDocumentMapper) mergeWith; - MergeContext mergeContext = new MergeContext(this, mergeFlags); - rootObjectMapper.merge(xContentMergeWith.rootObjectMapper, mergeContext); - - allFieldMapper.merge(xContentMergeWith.allFieldMapper, mergeContext); - analyzerMapper.merge(xContentMergeWith.analyzerMapper, mergeContext); - sourceFieldMapper.merge(xContentMergeWith.sourceFieldMapper, mergeContext); - sizeFieldMapper.merge(xContentMergeWith.sizeFieldMapper, mergeContext); - - if (!mergeFlags.simulate()) { - // let the merge with attributes to override the attributes - meta = mergeWith.meta(); - // update the source of the merged one - refreshSource(); - } - return new MergeResult(mergeContext.buildConflicts()); - } - - @Override public void refreshSource() throws FailedToGenerateSourceMapperException { - try { - XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON); - builder.startObject(); - toXContent(builder, ToXContent.EMPTY_PARAMS); - builder.endObject(); - this.mappingSource = new CompressedString(builder.string()); - } catch (Exception e) { - throw new FailedToGenerateSourceMapperException(e.getMessage(), e); - } - } - - @Override public void close() { - cache.remove(); - rootObjectMapper.close(); - idFieldMapper.close(); - indexFieldMapper.close(); - typeFieldMapper.close(); - allFieldMapper.close(); - analyzerMapper.close(); - sourceFieldMapper.close(); - sizeFieldMapper.close(); - } - - @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - rootObjectMapper.toXContent(builder, params, new ToXContent() { - @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - if (indexAnalyzer != null && searchAnalyzer != null && indexAnalyzer.name().equals(searchAnalyzer.name()) && !indexAnalyzer.name().startsWith("_")) { - if (!indexAnalyzer.name().equals("default")) { - // same analyzers, output it once - builder.field("analyzer", indexAnalyzer.name()); - } - } else { - if (indexAnalyzer != null && !indexAnalyzer.name().startsWith("_")) { - if (!indexAnalyzer.name().equals("default")) { - builder.field("index_analyzer", indexAnalyzer.name()); - } - } - if (searchAnalyzer != null && !searchAnalyzer.name().startsWith("_")) { - if (!searchAnalyzer.name().equals("default")) { - builder.field("search_analyzer", searchAnalyzer.name()); - } - } - } - - if (meta != null && !meta.isEmpty()) { - builder.field("_meta", meta()); - } - return builder; - } - // no need to pass here id and boost, since they are added to the root object mapper - // in the constructor - }, indexFieldMapper, typeFieldMapper, allFieldMapper, analyzerMapper, sourceFieldMapper, sizeFieldMapper); - return builder; - } -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapperParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapperParser.java deleted file mode 100644 index f3b9aedb2ea..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/xcontent/XContentDocumentMapperParser.java +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Licensed to Elastic Search and Shay Banon under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. Elastic Search 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.xcontent; - -import org.elasticsearch.common.Nullable; -import org.elasticsearch.common.Strings; -import org.elasticsearch.common.collect.ImmutableMap; -import org.elasticsearch.common.collect.MapBuilder; -import org.elasticsearch.common.collect.Maps; -import org.elasticsearch.common.collect.Tuple; -import org.elasticsearch.common.settings.ImmutableSettings; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.unit.ByteSizeValue; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentHelper; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.AbstractIndexComponent; -import org.elasticsearch.index.Index; -import org.elasticsearch.index.analysis.AnalysisService; -import org.elasticsearch.index.mapper.DocumentMapperParser; -import org.elasticsearch.index.mapper.MapperParsingException; -import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; -import org.elasticsearch.index.mapper.xcontent.ip.IpFieldMapper; -import org.elasticsearch.index.settings.IndexSettings; - -import java.io.IOException; -import java.util.Map; - -import static org.elasticsearch.common.xcontent.support.XContentMapValues.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; - -/** - * @author kimchy (shay.banon) - */ -public class XContentDocumentMapperParser extends AbstractIndexComponent implements DocumentMapperParser { - - final AnalysisService analysisService; - - private final RootObjectMapper.TypeParser rootObjectTypeParser = new RootObjectMapper.TypeParser(); - - private final Object typeParsersMutex = new Object(); - - private volatile ImmutableMap typeParsers; - - public XContentDocumentMapperParser(Index index, AnalysisService analysisService) { - this(index, ImmutableSettings.Builder.EMPTY_SETTINGS, analysisService); - } - - public XContentDocumentMapperParser(Index index, @IndexSettings Settings indexSettings, AnalysisService analysisService) { - super(index, indexSettings); - this.analysisService = analysisService; - typeParsers = new MapBuilder() - .put(ByteFieldMapper.CONTENT_TYPE, new ByteFieldMapper.TypeParser()) - .put(ShortFieldMapper.CONTENT_TYPE, new ShortFieldMapper.TypeParser()) - .put(IntegerFieldMapper.CONTENT_TYPE, new IntegerFieldMapper.TypeParser()) - .put(LongFieldMapper.CONTENT_TYPE, new LongFieldMapper.TypeParser()) - .put(FloatFieldMapper.CONTENT_TYPE, new FloatFieldMapper.TypeParser()) - .put(DoubleFieldMapper.CONTENT_TYPE, new DoubleFieldMapper.TypeParser()) - .put(BooleanFieldMapper.CONTENT_TYPE, new BooleanFieldMapper.TypeParser()) - .put(BinaryFieldMapper.CONTENT_TYPE, new BinaryFieldMapper.TypeParser()) - .put(DateFieldMapper.CONTENT_TYPE, new DateFieldMapper.TypeParser()) - .put(IpFieldMapper.CONTENT_TYPE, new IpFieldMapper.TypeParser()) - .put(StringFieldMapper.CONTENT_TYPE, new StringFieldMapper.TypeParser()) - .put(ObjectMapper.CONTENT_TYPE, new ObjectMapper.TypeParser()) - .put(MultiFieldMapper.CONTENT_TYPE, new MultiFieldMapper.TypeParser()) - .put(GeoPointFieldMapper.CONTENT_TYPE, new GeoPointFieldMapper.TypeParser()) - .immutableMap(); - } - - public void putTypeParser(String type, XContentMapper.TypeParser typeParser) { - synchronized (typeParsersMutex) { - typeParsers = new MapBuilder() - .putAll(typeParsers) - .put(type, typeParser) - .immutableMap(); - } - } - - public XContentMapper.TypeParser.ParserContext parserContext() { - return new XContentMapper.TypeParser.ParserContext(analysisService, typeParsers); - } - - @Override public XContentDocumentMapper parse(String source) throws MapperParsingException { - return parse(null, source); - } - - @Override public XContentDocumentMapper parse(@Nullable String type, String source) throws MapperParsingException { - return parse(type, source, null); - } - - @SuppressWarnings({"unchecked"}) - @Override public XContentDocumentMapper parse(@Nullable String type, String source, String defaultSource) throws MapperParsingException { - Map mapping = null; - if (source != null) { - Tuple> t = extractMapping(type, source); - type = t.v1(); - mapping = t.v2(); - } - if (mapping == null) { - mapping = Maps.newHashMap(); - } - - if (type == null) { - throw new MapperParsingException("Failed to derive type"); - } - - if (defaultSource != null) { - Tuple> t = extractMapping(MapperService.DEFAULT_MAPPING, defaultSource); - if (t.v2() != null) { - XContentHelper.mergeDefaults(mapping, t.v2()); - } - } - - XContentMapper.TypeParser.ParserContext parserContext = new XContentMapper.TypeParser.ParserContext(analysisService, typeParsers); - - XContentDocumentMapper.Builder docBuilder = doc(index.name(), indexSettings, (RootObjectMapper.Builder) rootObjectTypeParser.parse(type, mapping, parserContext)); - - for (Map.Entry entry : mapping.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - - if (SourceFieldMapper.CONTENT_TYPE.equals(fieldName) || "sourceField".equals(fieldName)) { - docBuilder.sourceField(parseSourceField((Map) fieldNode, parserContext)); - } else if (SizeFieldMapper.CONTENT_TYPE.equals(fieldName)) { - docBuilder.sizeField(parseSizeField((Map) fieldNode, parserContext)); - } else if (IdFieldMapper.CONTENT_TYPE.equals(fieldName) || "idField".equals(fieldName)) { - docBuilder.idField(parseIdField((Map) fieldNode, parserContext)); - } else if (IndexFieldMapper.CONTENT_TYPE.equals(fieldName) || "indexField".equals(fieldName)) { - docBuilder.indexField(parseIndexField((Map) fieldNode, parserContext)); - } else if (TypeFieldMapper.CONTENT_TYPE.equals(fieldName) || "typeField".equals(fieldName)) { - docBuilder.typeField(parseTypeField((Map) fieldNode, parserContext)); - } else if (UidFieldMapper.CONTENT_TYPE.equals(fieldName) || "uidField".equals(fieldName)) { - docBuilder.uidField(parseUidField((Map) fieldNode, parserContext)); - } else if (RoutingFieldMapper.CONTENT_TYPE.equals(fieldName)) { - docBuilder.routingField(parseRoutingField((Map) fieldNode, parserContext)); - } else if (ParentFieldMapper.CONTENT_TYPE.equals(fieldName)) { - docBuilder.parentFiled(parseParentField((Map) fieldNode, parserContext)); - } else if (BoostFieldMapper.CONTENT_TYPE.equals(fieldName) || "boostField".equals(fieldName)) { - docBuilder.boostField(parseBoostField((Map) fieldNode, parserContext)); - } else if (AllFieldMapper.CONTENT_TYPE.equals(fieldName) || "allField".equals(fieldName)) { - docBuilder.allField(parseAllField((Map) fieldNode, parserContext)); - } else if (AnalyzerMapper.CONTENT_TYPE.equals(fieldName)) { - docBuilder.analyzerField(parseAnalyzerField((Map) fieldNode, parserContext)); - } else if ("index_analyzer".equals(fieldName)) { - docBuilder.indexAnalyzer(analysisService.analyzer(fieldNode.toString())); - } else if ("search_analyzer".equals(fieldName)) { - docBuilder.searchAnalyzer(analysisService.analyzer(fieldNode.toString())); - } else if ("analyzer".equals(fieldName)) { - docBuilder.indexAnalyzer(analysisService.analyzer(fieldNode.toString())); - docBuilder.searchAnalyzer(analysisService.analyzer(fieldNode.toString())); - } - } - - if (!docBuilder.hasIndexAnalyzer()) { - docBuilder.indexAnalyzer(analysisService.defaultIndexAnalyzer()); - } - if (!docBuilder.hasSearchAnalyzer()) { - docBuilder.searchAnalyzer(analysisService.defaultSearchAnalyzer()); - } - - ImmutableMap attributes = ImmutableMap.of(); - if (mapping.containsKey("_meta")) { - attributes = ImmutableMap.copyOf((Map) mapping.get("_meta")); - } - docBuilder.meta(attributes); - - XContentDocumentMapper documentMapper = docBuilder.build(this); - // update the source with the generated one - documentMapper.refreshSource(); - return documentMapper; - } - - private UidFieldMapper.Builder parseUidField(Map uidNode, XContentMapper.TypeParser.ParserContext parserContext) { - UidFieldMapper.Builder builder = uid(); - return builder; - } - - private BoostFieldMapper.Builder parseBoostField(Map boostNode, XContentMapper.TypeParser.ParserContext parserContext) { - String name = boostNode.get("name") == null ? BoostFieldMapper.Defaults.NAME : boostNode.get("name").toString(); - BoostFieldMapper.Builder builder = boost(name); - parseNumberField(builder, name, boostNode, parserContext); - for (Map.Entry entry : boostNode.entrySet()) { - String propName = Strings.toUnderscoreCase(entry.getKey()); - Object propNode = entry.getValue(); - if (propName.equals("null_value")) { - builder.nullValue(nodeFloatValue(propNode)); - } - } - return builder; - } - - private TypeFieldMapper.Builder parseTypeField(Map typeNode, XContentMapper.TypeParser.ParserContext parserContext) { - TypeFieldMapper.Builder builder = type(); - parseField(builder, builder.name, typeNode, parserContext); - return builder; - } - - - private IdFieldMapper.Builder parseIdField(Map idNode, XContentMapper.TypeParser.ParserContext parserContext) { - IdFieldMapper.Builder builder = id(); - parseField(builder, builder.name, idNode, parserContext); - return builder; - } - - // NOTE, we also parse this in MappingMetaData - private RoutingFieldMapper.Builder parseRoutingField(Map routingNode, XContentMapper.TypeParser.ParserContext parserContext) { - RoutingFieldMapper.Builder builder = routing(); - parseField(builder, builder.name, routingNode, parserContext); - for (Map.Entry entry : routingNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("required")) { - builder.required(nodeBooleanValue(fieldNode)); - } else if (fieldName.equals("path")) { - builder.path(fieldNode.toString()); - } - } - return builder; - } - - private ParentFieldMapper.Builder parseParentField(Map parentNode, XContentMapper.TypeParser.ParserContext parserContext) { - ParentFieldMapper.Builder builder = new ParentFieldMapper.Builder(); - for (Map.Entry entry : parentNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("type")) { - builder.type(fieldNode.toString()); - } - } - return builder; - } - - private AnalyzerMapper.Builder parseAnalyzerField(Map analyzerNode, XContentMapper.TypeParser.ParserContext parserContext) { - AnalyzerMapper.Builder builder = analyzer(); - for (Map.Entry entry : analyzerNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("path")) { - builder.field(fieldNode.toString()); - } - } - return builder; - } - - private AllFieldMapper.Builder parseAllField(Map allNode, XContentMapper.TypeParser.ParserContext parserContext) { - AllFieldMapper.Builder builder = all(); - parseField(builder, builder.name, allNode, parserContext); - for (Map.Entry entry : allNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("enabled")) { - builder.enabled(nodeBooleanValue(fieldNode)); - } - } - return builder; - } - - private SizeFieldMapper.Builder parseSizeField(Map node, XContentMapper.TypeParser.ParserContext parserContext) { - SizeFieldMapper.Builder builder = new SizeFieldMapper.Builder(); - - for (Map.Entry entry : node.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("enabled")) { - builder.enabled(nodeBooleanValue(fieldNode)); - } else if (fieldName.equals("store")) { - builder.store(parseStore(fieldName, fieldNode.toString())); - } - } - return builder; - } - - private SourceFieldMapper.Builder parseSourceField(Map sourceNode, XContentMapper.TypeParser.ParserContext parserContext) { - SourceFieldMapper.Builder builder = source(); - - for (Map.Entry entry : sourceNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("enabled")) { - builder.enabled(nodeBooleanValue(fieldNode)); - } else if (fieldName.equals("compress") && fieldNode != null) { - builder.compress(nodeBooleanValue(fieldNode)); - } else if (fieldName.equals("compress_threshold") && fieldNode != null) { - if (fieldNode instanceof Number) { - builder.compressThreshold(((Number) fieldNode).longValue()); - builder.compress(true); - } else { - builder.compressThreshold(ByteSizeValue.parseBytesSizeValue(fieldNode.toString()).bytes()); - builder.compress(true); - } - } - } - return builder; - } - - private IndexFieldMapper.Builder parseIndexField(Map indexNode, XContentMapper.TypeParser.ParserContext parserContext) { - IndexFieldMapper.Builder builder = XContentMapperBuilders.index(); - parseField(builder, builder.name, indexNode, parserContext); - - for (Map.Entry entry : indexNode.entrySet()) { - String fieldName = Strings.toUnderscoreCase(entry.getKey()); - Object fieldNode = entry.getValue(); - if (fieldName.equals("enabled")) { - builder.enabled(nodeBooleanValue(fieldNode)); - } - } - return builder; - } - - @SuppressWarnings({"unchecked"}) - private Tuple> extractMapping(String type, String source) throws MapperParsingException { - Map root; - XContentParser xContentParser = null; - try { - xContentParser = XContentFactory.xContent(source).createParser(source); - root = xContentParser.map(); - } catch (IOException e) { - throw new MapperParsingException("Failed to parse mapping definition", e); - } finally { - if (xContentParser != null) { - xContentParser.close(); - } - } - - // we always assume the first and single key is the mapping type root - if (root.keySet().size() != 1) { - throw new MapperParsingException("Mapping must have the `type` as the root object"); - } - - String rootName = root.keySet().iterator().next(); - if (type == null) { - type = rootName; - } - - return new Tuple>(type, (Map) root.get(rootName)); - } -} diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorExecutor.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorExecutor.java index 0c2251e7a8b..2c9cff5d7da 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorExecutor.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorExecutor.java @@ -53,7 +53,7 @@ import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.index.query.IndexQueryParserService; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorService.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorService.java index e626fdf0e8a..d3b546645c1 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorService.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/percolator/PercolatorService.java @@ -22,7 +22,11 @@ package org.elasticsearch.index.percolator; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; -import org.apache.lucene.search.*; +import org.apache.lucene.search.Collector; +import org.apache.lucene.search.DeletionAwareConstantScoreQuery; +import org.apache.lucene.search.Filter; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.Scorer; import org.elasticsearch.common.collect.Maps; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.lucene.search.TermFilter; @@ -30,7 +34,11 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.AbstractIndexComponent; import org.elasticsearch.index.Index; import org.elasticsearch.index.engine.Engine; -import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.mapper.Uid; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; +import org.elasticsearch.index.mapper.internal.TypeFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; +import org.elasticsearch.index.mapper.selector.UidAndSourceFieldSelector; import org.elasticsearch.index.service.IndexService; import org.elasticsearch.index.settings.IndexSettings; import org.elasticsearch.index.shard.IndexShardState; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/FuzzyLikeThisQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/FuzzyLikeThisQueryParser.java index 96681d776bf..b554a8e34a7 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/FuzzyLikeThisQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/FuzzyLikeThisQueryParser.java @@ -24,7 +24,7 @@ import org.apache.lucene.search.Query; import org.elasticsearch.common.collect.Lists; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.mapper.AllFieldMapper; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import java.io.IOException; import java.util.List; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxFilterParser.java index 67a896e6713..ba89dac376b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxFilterParser.java @@ -24,8 +24,8 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoBoundingBoxFilter; import org.elasticsearch.index.search.geo.GeoHashUtils; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceFilterParser.java index 06020156904..81c897521a4 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceFilterParser.java @@ -25,8 +25,8 @@ import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.index.search.geo.GeoDistanceFilter; import org.elasticsearch.index.search.geo.GeoHashUtils; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceRangeFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceRangeFilterParser.java index 9114e84d51d..ac90ec20140 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceRangeFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoDistanceRangeFilterParser.java @@ -25,8 +25,8 @@ import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.index.search.geo.GeoDistanceRangeFilter; import org.elasticsearch.index.search.geo.GeoHashUtils; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoPolygonFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoPolygonFilterParser.java index a78ca0b55fc..d1c339e8463 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoPolygonFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/GeoPolygonFilterParser.java @@ -25,8 +25,8 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoHashUtils; import org.elasticsearch.index.search.geo.GeoPolygonFilter; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryParser.java index bcce33013c9..946efbfa74a 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryParser.java @@ -25,7 +25,7 @@ import org.elasticsearch.common.collect.Sets; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.lucene.search.MoreLikeThisQuery; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.mapper.AllFieldMapper; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import java.io.IOException; import java.util.List; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/NumericRangeFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/NumericRangeFilterParser.java index 865bf610e70..0c48e314a08 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/NumericRangeFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/NumericRangeFilterParser.java @@ -24,7 +24,7 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.NumberFieldMapper; +import org.elasticsearch.index.mapper.core.NumberFieldMapper; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/QueryStringQueryParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/QueryStringQueryParser.java index ec154d2eef3..376f782088b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/QueryStringQueryParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/QueryStringQueryParser.java @@ -30,7 +30,7 @@ import org.elasticsearch.common.regex.Regex; import org.elasticsearch.common.trove.impl.Constants; import org.elasticsearch.common.trove.map.hash.TObjectFloatHashMap; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.mapper.AllFieldMapper; +import org.elasticsearch.index.mapper.internal.AllFieldMapper; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/TypeFilterParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/TypeFilterParser.java index 305f1969d96..cdca00cc435 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/TypeFilterParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/query/TypeFilterParser.java @@ -25,7 +25,7 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.lucene.search.TermFilter; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.DocumentMapper; -import org.elasticsearch.index.mapper.TypeFieldMapper; +import org.elasticsearch.index.mapper.internal.TypeFieldMapper; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/UidFilter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/UidFilter.java index 399468155d3..4b1f50235b8 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/UidFilter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/UidFilter.java @@ -30,7 +30,7 @@ import org.elasticsearch.common.Unicode; import org.elasticsearch.common.bloom.BloomFilter; import org.elasticsearch.index.cache.bloom.BloomCache; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import java.io.IOException; import java.util.ArrayList; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoBoundingBoxFilter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoBoundingBoxFilter.java index d1dbaf9cee2..aec26663566 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoBoundingBoxFilter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoBoundingBoxFilter.java @@ -24,8 +24,8 @@ import org.apache.lucene.search.DocIdSet; import org.apache.lucene.search.Filter; import org.elasticsearch.common.lucene.docset.GetDocSet; import org.elasticsearch.index.cache.field.data.FieldDataCache; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceDataComparator.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceDataComparator.java index 74d4cd85033..cb4c67f2c07 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceDataComparator.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceDataComparator.java @@ -27,8 +27,8 @@ import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceFilter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceFilter.java index 9574d09bdda..50f69c5c569 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceFilter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceFilter.java @@ -25,8 +25,8 @@ import org.apache.lucene.search.Filter; import org.elasticsearch.common.lucene.docset.GetDocSet; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.cache.field.data.FieldDataCache; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java index 9dad488c8d7..0537d8545d6 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoDistanceRangeFilter.java @@ -26,8 +26,8 @@ import org.apache.lucene.util.NumericUtils; import org.elasticsearch.common.lucene.docset.GetDocSet; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.cache.field.data.FieldDataCache; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java index f72c23b095a..907f3e00112 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/search/geo/GeoPolygonFilter.java @@ -24,8 +24,8 @@ import org.apache.lucene.search.DocIdSet; import org.apache.lucene.search.Filter; import org.elasticsearch.common.lucene.docset.GetDocSet; import org.elasticsearch.index.cache.field.data.FieldDataCache; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import java.io.IOException; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetCollector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetCollector.java index 11e4c2e0039..72fd1230208 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetCollector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetCollector.java @@ -23,8 +23,8 @@ import org.apache.lucene.index.IndexReader; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.cache.field.data.FieldDataCache; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldDataType; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldDataType; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.search.facet.AbstractFacetCollector; import org.elasticsearch.search.facet.Facet; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetProcessor.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetProcessor.java index 9e12abc1182..7d9d9123dc2 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetProcessor.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/GeoDistanceFacetProcessor.java @@ -25,7 +25,7 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.index.search.geo.GeoHashUtils; import org.elasticsearch.search.facet.Facet; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ScriptGeoDistanceFacetCollector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ScriptGeoDistanceFacetCollector.java index 5120e7eb5a2..e747e0d0a10 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ScriptGeoDistanceFacetCollector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ScriptGeoDistanceFacetCollector.java @@ -22,7 +22,7 @@ package org.elasticsearch.search.facet.geodistance; import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.Scorer; import org.elasticsearch.common.unit.DistanceUnit; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.script.SearchScript; import org.elasticsearch.search.internal.SearchContext; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ValueGeoDistanceFacetCollector.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ValueGeoDistanceFacetCollector.java index 4aa01e13c27..6240420d213 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ValueGeoDistanceFacetCollector.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/geodistance/ValueGeoDistanceFacetCollector.java @@ -24,7 +24,7 @@ import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.field.data.FieldDataType; import org.elasticsearch.index.field.data.NumericFieldData; import org.elasticsearch.index.mapper.FieldMapper; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldData; +import org.elasticsearch.index.mapper.geo.GeoPointFieldData; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.search.facet.FacetPhaseExecutionException; import org.elasticsearch.search.internal.SearchContext; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/TermsFacetProcessor.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/TermsFacetProcessor.java index 3f75ecae62a..134b4b35086 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/TermsFacetProcessor.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/TermsFacetProcessor.java @@ -28,7 +28,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.field.data.FieldDataType; import org.elasticsearch.index.mapper.FieldMapper; -import org.elasticsearch.index.mapper.xcontent.ip.IpFieldMapper; +import org.elasticsearch.index.mapper.ip.IpFieldMapper; import org.elasticsearch.search.facet.Facet; import org.elasticsearch.search.facet.FacetCollector; import org.elasticsearch.search.facet.FacetProcessor; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/ip/InternalIpTermsFacet.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/ip/InternalIpTermsFacet.java index 96cb754a5d7..367143121f8 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/ip/InternalIpTermsFacet.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/facet/terms/ip/InternalIpTermsFacet.java @@ -28,7 +28,7 @@ import org.elasticsearch.common.trove.iterator.TLongIntIterator; import org.elasticsearch.common.trove.map.hash.TLongIntHashMap; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilderString; -import org.elasticsearch.index.mapper.xcontent.ip.IpFieldMapper; +import org.elasticsearch.index.mapper.ip.IpFieldMapper; import org.elasticsearch.search.facet.Facet; import org.elasticsearch.search.facet.terms.InternalTermsFacet; import org.elasticsearch.search.facet.terms.TermsFacet; @@ -187,7 +187,7 @@ public class InternalIpTermsFacet extends InternalTermsFacet { } BoundedTreeSet ordered = new BoundedTreeSet(first.comparatorType.comparator(), first.requiredSize); - for (TLongIntIterator it = aggregated.iterator(); it.hasNext();) { + for (TLongIntIterator it = aggregated.iterator(); it.hasNext(); ) { it.advance(); ordered.add(new LongEntry(it.key(), it.value())); } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java index c89d1c1bdb0..098ef5fb76e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/FetchPhase.java @@ -26,7 +26,16 @@ import org.apache.lucene.index.IndexReader; import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.index.Index; -import org.elasticsearch.index.mapper.*; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.FieldMapper; +import org.elasticsearch.index.mapper.FieldMappers; +import org.elasticsearch.index.mapper.Uid; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; +import org.elasticsearch.index.mapper.selector.AllButSourceFieldSelector; +import org.elasticsearch.index.mapper.selector.FieldMappersFieldSelector; +import org.elasticsearch.index.mapper.selector.UidAndSourceFieldSelector; +import org.elasticsearch.index.mapper.selector.UidFieldSelector; import org.elasticsearch.indices.TypeMissingException; import org.elasticsearch.search.SearchHitField; import org.elasticsearch.search.SearchParseElement; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/version/VersionSearchHitPhase.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/version/VersionSearchHitPhase.java index 11694983eef..c44f1f02ce1 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/version/VersionSearchHitPhase.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/fetch/version/VersionSearchHitPhase.java @@ -22,7 +22,7 @@ package org.elasticsearch.search.fetch.version; import org.elasticsearch.ElasticSearchException; import org.elasticsearch.common.collect.ImmutableMap; import org.elasticsearch.common.lucene.uid.UidField; -import org.elasticsearch.index.mapper.UidFieldMapper; +import org.elasticsearch.index.mapper.internal.UidFieldMapper; import org.elasticsearch.search.SearchParseElement; import org.elasticsearch.search.fetch.SearchHitPhase; import org.elasticsearch.search.internal.SearchContext; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java index be6f795db08..b0d66d58cc4 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/lookup/SourceLookup.java @@ -31,8 +31,8 @@ import org.elasticsearch.common.io.stream.LZFStreamInput; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; -import org.elasticsearch.index.mapper.SourceFieldMapper; -import org.elasticsearch.index.mapper.SourceFieldSelector; +import org.elasticsearch.index.mapper.internal.SourceFieldMapper; +import org.elasticsearch.index.mapper.internal.SourceFieldSelector; import java.util.Collection; import java.util.List; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortParser.java b/modules/elasticsearch/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortParser.java index f6f85c8803a..abe03c73052 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortParser.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortParser.java @@ -22,7 +22,7 @@ package org.elasticsearch.search.sort; import org.apache.lucene.search.SortField; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.mapper.xcontent.geo.GeoPointFieldMapper; +import org.elasticsearch.index.mapper.geo.GeoPointFieldMapper; import org.elasticsearch.index.search.geo.GeoDistance; import org.elasticsearch.index.search.geo.GeoDistanceDataComparator; import org.elasticsearch.index.search.geo.GeoHashUtils; diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/MapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/MapperTests.java similarity index 88% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/MapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/MapperTests.java index 6dae1af9699..cb7842b9862 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/MapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/MapperTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper; import org.elasticsearch.common.inject.Injector; import org.elasticsearch.common.inject.ModulesBuilder; @@ -27,7 +27,6 @@ import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexNameModule; import org.elasticsearch.index.analysis.AnalysisModule; import org.elasticsearch.index.analysis.AnalysisService; -import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.settings.IndexSettingsModule; /** @@ -35,8 +34,8 @@ import org.elasticsearch.index.settings.IndexSettingsModule; */ public class MapperTests { - public static XContentDocumentMapperParser newParser() { - return new XContentDocumentMapperParser(new Index("test"), newAnalysisService()); + public static DocumentMapperParser newParser() { + return new DocumentMapperParser(new Index("test"), newAnalysisService()); } public static MapperService newMapperService() { diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/SimpleAllMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java similarity index 80% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/SimpleAllMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java index fd1e04db30a..6bbe086b36c 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/SimpleAllMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/SimpleAllMapperTests.java @@ -17,14 +17,14 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.all; +package org.elasticsearch.index.mapper.all; import org.apache.lucene.document.Document; import org.elasticsearch.common.lucene.all.AllEntries; import org.elasticsearch.common.lucene.all.AllField; import org.elasticsearch.common.lucene.all.AllTokenStream; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; @@ -38,9 +38,9 @@ import static org.hamcrest.Matchers.*; public class SimpleAllMapperTests { @Test public void testSimpleAllMappers() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/test1.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/all/mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/all/test1.json"); Document doc = docMapper.parse(json).doc(); AllField field = (AllField) doc.getFieldable("_all"); AllEntries allEntries = ((AllTokenStream) field.tokenStreamValue()).allEntries(); @@ -51,13 +51,13 @@ public class SimpleAllMapperTests { } @Test public void testSimpleAllMappersWithReparse() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/all/mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); String builtMapping = docMapper.mappingSource().string(); // System.out.println(builtMapping); // reparse it - XContentDocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/test1.json"); + DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/all/test1.json"); Document doc = builtDocMapper.parse(json).doc(); AllField field = (AllField) doc.getFieldable("_all"); @@ -69,9 +69,9 @@ public class SimpleAllMapperTests { } @Test public void testSimpleAllMappersWithStore() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/store-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/test1.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/all/store-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/all/test1.json"); Document doc = docMapper.parse(json).doc(); AllField field = (AllField) doc.getFieldable("_all"); AllEntries allEntries = ((AllTokenStream) field.tokenStreamValue()).allEntries(); @@ -84,13 +84,13 @@ public class SimpleAllMapperTests { } @Test public void testSimpleAllMappersWithReparseWithStore() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/store-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/all/store-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); String builtMapping = docMapper.mappingSource().string(); System.out.println(builtMapping); // reparse it - XContentDocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/all/test1.json"); + DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/all/test1.json"); Document doc = builtDocMapper.parse(json).doc(); AllField field = (AllField) doc.getFieldable("_all"); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/mapping.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/mapping.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/mapping.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/store-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/store-mapping.json new file mode 100644 index 00000000000..989d0026f7b --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/store-mapping.json @@ -0,0 +1,55 @@ +{ + "person" : { + "_all" : { + "enabled" : true, + "store" : "yes" + }, + "properties" : { + "name" : { + "type" : "object", + "dynamic" : false, + "properties" : { + "first" : { + "type" : "string", + "store" : "yes", + "include_in_all" : false + }, + "last" : { + "type" : "string", + "index" : "not_analyzed" + } + } + }, + "address" : { + "type" : "object", + "include_in_all" : false, + "properties" : { + "first" : { + "properties" : { + "location" : { + "type" : "string", + "store" : "yes", + "index_name" : "firstLocation" + } + } + }, + "last" : { + "properties" : { + "location" : { + "type" : "string" + } + } + } + } + }, + "simple1" : { + "type" : "long", + "include_in_all" : true + }, + "simple2" : { + "type" : "long", + "include_in_all" : false + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/test1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/test1.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/test1.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/all/test1.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/analyzer/AnalyzerMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/analyzer/AnalyzerMapperTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/analyzer/AnalyzerMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/analyzer/AnalyzerMapperTests.java index 7b3c843d00c..04b521b17e5 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/analyzer/AnalyzerMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/analyzer/AnalyzerMapperTests.java @@ -17,14 +17,14 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.analyzer; +package org.elasticsearch.index.mapper.analyzer; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.analysis.FieldNameAnalyzer; import org.elasticsearch.index.analysis.NamedAnalyzer; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -44,7 +44,7 @@ public class AnalyzerMapperTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") @@ -59,7 +59,7 @@ public class AnalyzerMapperTests { // check that it serializes and de-serializes correctly - XContentDocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); + DocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); doc = reparsedMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") @@ -84,7 +84,7 @@ public class AnalyzerMapperTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") @@ -99,7 +99,7 @@ public class AnalyzerMapperTests { // check that it serializes and de-serializes correctly - XContentDocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); + DocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); doc = reparsedMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") @@ -123,7 +123,7 @@ public class AnalyzerMapperTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") @@ -138,7 +138,7 @@ public class AnalyzerMapperTests { // check that it serializes and de-serializes correctly - XContentDocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); + DocumentMapper reparsedMapper = MapperTests.newParser().parse(documentMapper.mappingSource().string()); doc = reparsedMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field_analyzer", "whitespace") diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/camelcase/CamelCaseFieldNameTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/camelcase/CamelCaseFieldNameTests.java similarity index 88% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/camelcase/CamelCaseFieldNameTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/camelcase/CamelCaseFieldNameTests.java index a66a10ccb18..0c5f00191c2 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/camelcase/CamelCaseFieldNameTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/camelcase/CamelCaseFieldNameTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.camelcase; +package org.elasticsearch.index.mapper.camelcase; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -37,7 +37,7 @@ public class CamelCaseFieldNameTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("thisIsCamelCase", "value1") diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/compound/CompoundTypesTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/compound/CompoundTypesTests.java similarity index 91% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/compound/CompoundTypesTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/compound/CompoundTypesTests.java index 57c4a66d281..8f7ee06421c 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/compound/CompoundTypesTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/compound/CompoundTypesTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.compound; +package org.elasticsearch.index.mapper.compound; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -38,7 +38,7 @@ public class CompoundTypesTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/date/SimpleDateMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/date/SimpleDateMappingTests.java similarity index 86% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/date/SimpleDateMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/date/SimpleDateMappingTests.java index a720561e3e4..9cddb866c8f 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/date/SimpleDateMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/date/SimpleDateMappingTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.date; +package org.elasticsearch.index.mapper.date; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -36,7 +36,7 @@ public class SimpleDateMappingTests { .startObject("properties").startObject("date_field").field("type", "date").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); long value = System.currentTimeMillis(); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamic/DynamicMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamic/DynamicMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java index 17279a03c91..6af5c07a8c0 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamic/DynamicMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamic/DynamicMappingTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.dynamic; +package org.elasticsearch.index.mapper.dynamic; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.StrictDynamicMappingException; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import java.io.IOException; @@ -42,7 +42,7 @@ public class DynamicMappingTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -62,7 +62,7 @@ public class DynamicMappingTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -83,7 +83,7 @@ public class DynamicMappingTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); try { defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() @@ -107,7 +107,7 @@ public class DynamicMappingTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("obj1") @@ -130,7 +130,7 @@ public class DynamicMappingTests { .endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); try { defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java similarity index 83% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java index e186b95f3a4..9e5aa57d62c 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/GenericStoreDynamicTemplateTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.dynamictemplate.genericstore; +package org.elasticsearch.index.mapper.dynamictemplate.genericstore; import org.apache.lucene.document.Document; import org.apache.lucene.document.Fieldable; +import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.FieldMappers; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; @@ -36,9 +36,9 @@ import static org.hamcrest.Matchers.*; public class GenericStoreDynamicTemplateTests { @Test public void testSimple() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-data.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-data.json"); Document doc = docMapper.parse(json).doc(); Fieldable f = doc.getFieldable("name"); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-data.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-data.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-data.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-data.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-mapping.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/genericstore/test-mapping.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/genericstore/test-mapping.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java similarity index 85% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java index 66ff501d7c7..87cffc19391 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/PathMatchDynamicTempalteTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.dynamictemplate.pathmatch; +package org.elasticsearch.index.mapper.dynamictemplate.pathmatch; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.FieldMappers; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; @@ -36,9 +36,9 @@ import static org.hamcrest.Matchers.*; public class PathMatchDynamicTempalteTests { @Test public void testSimple() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-data.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-data.json"); Document doc = docMapper.parse(json).doc(); Field f = doc.getField("name"); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-data.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-data.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-data.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-data.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-mapping.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/pathmatch/test-mapping.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/pathmatch/test-mapping.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/SimpleDynamicTemplatesTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/SimpleDynamicTemplatesTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/SimpleDynamicTemplatesTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/SimpleDynamicTemplatesTests.java index ab7e8e0ef63..cc0a00bbaf7 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/SimpleDynamicTemplatesTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/SimpleDynamicTemplatesTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.dynamictemplate.simple; +package org.elasticsearch.index.mapper.dynamictemplate.simple; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.FieldMappers; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; @@ -36,9 +36,9 @@ import static org.hamcrest.Matchers.*; public class SimpleDynamicTemplatesTests { @Test public void testSimple() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-data.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/simple/test-data.json"); Document doc = docMapper.parse(json).doc(); Field f = doc.getField("name"); @@ -88,12 +88,12 @@ public class SimpleDynamicTemplatesTests { } @Test public void testSimpleWithXContentTraverse() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); docMapper.refreshSource(); docMapper = MapperTests.newParser().parse(docMapper.mappingSource().string()); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-data.json"); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/dynamictemplate/simple/test-data.json"); Document doc = docMapper.parse(json).doc(); Field f = doc.getField("name"); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-data.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/test-data.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-data.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/test-data.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/test-mapping.json similarity index 59% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-mapping.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/test-mapping.json index 9b44f28b57f..65511907d92 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/dynamictemplate/simple/test-mapping.json +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/dynamictemplate/simple/test-mapping.json @@ -7,8 +7,16 @@ "mapping" : { "type" : "multi_field", "fields" : { - "{name}" : {"type": "{dynamic_type}", "index" : "analyzed", "store" : "yes"}, - "org" : {"type": "{dynamic_type}", "index" : "not_analyzed", "store" : "yes"} + "{name}" : { + "type": "{dynamic_type}", + "index" : "analyzed", + "store" : "yes" + }, + "org" : { + "type": "{dynamic_type}", + "index" : "not_analyzed", + "store" : "yes" + } } } } diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/GeohashMappingGeoPointTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/GeohashMappingGeoPointTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/GeohashMappingGeoPointTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/GeohashMappingGeoPointTests.java index a9b1b512d31..b7b517e30a4 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/GeohashMappingGeoPointTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/GeohashMappingGeoPointTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geopoint; +package org.elasticsearch.index.mapper.geopoint; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.elasticsearch.index.search.geo.GeoHashUtils; import org.hamcrest.MatcherAssert; import org.testng.annotations.Test; @@ -39,7 +39,7 @@ public class GeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", false).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -57,7 +57,7 @@ public class GeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", false).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -75,7 +75,7 @@ public class GeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("geohash", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonAndGeohashMappingGeoPointTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonAndGeohashMappingGeoPointTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonAndGeohashMappingGeoPointTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonAndGeohashMappingGeoPointTests.java index 9392556eb63..662ae70c3ce 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonAndGeohashMappingGeoPointTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonAndGeohashMappingGeoPointTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geopoint; +package org.elasticsearch.index.mapper.geopoint; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.elasticsearch.index.search.geo.GeoHashUtils; import org.testng.annotations.Test; @@ -39,7 +39,7 @@ public class LatLonAndGeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("geohash", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -57,7 +57,7 @@ public class LatLonAndGeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("geohash", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -75,7 +75,7 @@ public class LatLonAndGeohashMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("geohash", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonMappingGeoPointTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonMappingGeoPointTests.java similarity index 92% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonMappingGeoPointTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonMappingGeoPointTests.java index 3f1206d7efd..c9ae723820d 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/geopoint/LatLonMappingGeoPointTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/geopoint/LatLonMappingGeoPointTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.geopoint; +package org.elasticsearch.index.mapper.geopoint; import org.elasticsearch.common.Numbers; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.elasticsearch.index.search.geo.GeoHashUtils; import org.testng.annotations.Test; @@ -40,7 +40,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -61,7 +61,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -82,7 +82,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -108,7 +108,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -126,7 +126,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -146,7 +146,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -172,7 +172,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -190,7 +190,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -210,7 +210,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -230,7 +230,7 @@ public class LatLonMappingGeoPointTests { .startObject("properties").startObject("point").field("type", "geo_point").field("lat_lon", true).field("store", "yes").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/index/IndexTypeMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/index/IndexTypeMapperTests.java similarity index 88% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/index/IndexTypeMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/index/IndexTypeMapperTests.java index e5d1eb81d34..4e57d457f60 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/index/IndexTypeMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/index/IndexTypeMapperTests.java @@ -17,14 +17,14 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.index; +package org.elasticsearch.index.mapper.index; import org.apache.lucene.document.Field; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.index.mapper.IndexFieldMapper; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.internal.IndexFieldMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -39,7 +39,7 @@ public class IndexTypeMapperTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_index").field("enabled", true).field("store", "yes").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat(docMapper.indexMapper().enabled(), equalTo(true)); assertThat(docMapper.indexMapper().store(), equalTo(Field.Store.YES)); assertThat(docMapper.mappers().indexName("_index").mapper(), instanceOf(IndexFieldMapper.class)); @@ -58,7 +58,7 @@ public class IndexTypeMapperTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_index").field("enabled", false).field("store", "yes").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat(docMapper.indexMapper().enabled(), equalTo(false)); assertThat(docMapper.indexMapper().store(), equalTo(Field.Store.YES)); @@ -75,7 +75,7 @@ public class IndexTypeMapperTests { @Test public void defaultDisabledIndexMapperTests() throws Exception { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat(docMapper.indexMapper().enabled(), equalTo(false)); assertThat(docMapper.indexMapper().store(), equalTo(Field.Store.NO)); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/ip/SimpleIpMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/ip/SimpleIpMappingTests.java similarity index 97% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/ip/SimpleIpMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/ip/SimpleIpMappingTests.java index edd7981ade0..54104c4c28b 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/ip/SimpleIpMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/ip/SimpleIpMappingTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.ip; +package org.elasticsearch.index.mapper.ip; /** * @author kimchy (shay.banon) diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/lucene/DoubleIndexingDocTest.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java similarity index 91% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/lucene/DoubleIndexingDocTest.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java index d08107efe8d..8f484c8306f 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/lucene/DoubleIndexingDocTest.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/lucene/DoubleIndexingDocTest.java @@ -1,4 +1,4 @@ -package org.elasticsearch.index.mapper.xcontent.lucene; +package org.elasticsearch.index.mapper.lucene; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; @@ -7,9 +7,9 @@ import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.RAMDirectory; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -27,7 +27,7 @@ public class DoubleIndexingDocTest { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("properties").endObject() .endObject().endObject().string(); - XContentDocumentMapper mapper = MapperTests.newParser().parse(mapping); + DocumentMapper mapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = mapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/Test1MergeMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/Test1MergeMapperTests.java similarity index 80% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/Test1MergeMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/Test1MergeMapperTests.java index 94b1a91df01..24ff67bb796 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/Test1MergeMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/Test1MergeMapperTests.java @@ -17,11 +17,10 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.merge.test1; +package org.elasticsearch.index.mapper.merge; import org.elasticsearch.index.mapper.DocumentMapper; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; @@ -36,10 +35,10 @@ import static org.hamcrest.Matchers.*; public class Test1MergeMapperTests { @Test public void test1Merge() throws Exception { - String stage1Mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/merge/test1/stage1.json"); - XContentDocumentMapper stage1 = MapperTests.newParser().parse(stage1Mapping); - String stage2Mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/merge/test1/stage2.json"); - XContentDocumentMapper stage2 = MapperTests.newParser().parse(stage2Mapping); + String stage1Mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/merge/stage1.json"); + DocumentMapper stage1 = MapperTests.newParser().parse(stage1Mapping); + String stage2Mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/merge/stage2.json"); + DocumentMapper stage2 = MapperTests.newParser().parse(stage2Mapping); DocumentMapper.MergeResult mergeResult = stage1.merge(stage2, mergeFlags().simulate(true)); assertThat(mergeResult.hasConflicts(), equalTo(false)); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage1.json new file mode 100644 index 00000000000..19a1a68778c --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage1.json @@ -0,0 +1,9 @@ +{ + person : { + properties : { + name : { + type : "string" + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage2.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage2.json new file mode 100644 index 00000000000..76d8b8d99ac --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/merge/stage2.json @@ -0,0 +1,12 @@ +{ + person : { + properties : { + name : { + type : "string" + }, + age : { + type : "integer" + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/MultiFieldTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/MultiFieldTests.java similarity index 82% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/MultiFieldTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/MultiFieldTests.java index 83835d5c213..d099595c3d1 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/MultiFieldTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/MultiFieldTests.java @@ -17,18 +17,18 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.multifield; +package org.elasticsearch.index.mapper.multifield; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.Fieldable; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapperParser; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.elasticsearch.common.io.Streams.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*; @@ -39,9 +39,9 @@ import static org.hamcrest.Matchers.*; public class MultiFieldTests { @Test public void testMultiField() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/test-data.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/multifield/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/multifield/test-data.json"); Document doc = docMapper.parse(json).doc(); Fieldable f = doc.getFieldable("name"); @@ -71,9 +71,9 @@ public class MultiFieldTests { } @Test public void testBuildThenParse() throws Exception { - XContentDocumentMapperParser mapperParser = MapperTests.newParser(); + DocumentMapperParser mapperParser = MapperTests.newParser(); - XContentDocumentMapper builderDocMapper = doc("test", rootObject("person").add( + DocumentMapper builderDocMapper = doc("test", rootObject("person").add( multiField("name") .add(stringField("name").store(Field.Store.YES)) .add(stringField("indexed").index(Field.Index.ANALYZED)) @@ -84,10 +84,10 @@ public class MultiFieldTests { String builtMapping = builderDocMapper.mappingSource().string(); // System.out.println(builtMapping); // reparse it - XContentDocumentMapper docMapper = mapperParser.parse(builtMapping); + DocumentMapper docMapper = mapperParser.parse(builtMapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/test-data.json"); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/multifield/test-data.json"); Document doc = docMapper.parse(json).doc(); Fieldable f = doc.getFieldable("name"); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/JavaMultiFieldMergeTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/JavaMultiFieldMergeTests.java similarity index 83% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/JavaMultiFieldMergeTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/JavaMultiFieldMergeTests.java index 172e2afb42b..f9873072c0f 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/JavaMultiFieldMergeTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/JavaMultiFieldMergeTests.java @@ -17,14 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.multifield.merge; +package org.elasticsearch.index.mapper.multifield.merge; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.elasticsearch.index.mapper.DocumentMapper; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapperParser; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import java.util.Arrays; @@ -41,15 +40,15 @@ import static org.hamcrest.Matchers.*; public class JavaMultiFieldMergeTests { @Test public void testMergeMultiField() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping1.json"); - XContentDocumentMapperParser parser = MapperTests.newParser(); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-mapping1.json"); + DocumentMapperParser parser = MapperTests.newParser(); - XContentDocumentMapper docMapper = parser.parse(mapping); + DocumentMapper docMapper = parser.parse(mapping); assertThat(docMapper.mappers().fullName("name").mapper().indexed(), equalTo(true)); assertThat(docMapper.mappers().fullName("name.indexed"), nullValue()); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-data.json"); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-data.json"); Document doc = docMapper.parse(json).doc(); Field f = doc.getField("name"); assertThat(f, notNullValue()); @@ -57,8 +56,8 @@ public class JavaMultiFieldMergeTests { assertThat(f, nullValue()); - mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping2.json"); - XContentDocumentMapper docMapper2 = parser.parse(mapping); + mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-mapping2.json"); + DocumentMapper docMapper2 = parser.parse(mapping); DocumentMapper.MergeResult mergeResult = docMapper.merge(docMapper2, mergeFlags().simulate(true)); assertThat(Arrays.toString(mergeResult.conflicts()), mergeResult.hasConflicts(), equalTo(false)); @@ -73,15 +72,15 @@ public class JavaMultiFieldMergeTests { assertThat(docMapper.mappers().fullName("name.not_indexed2"), nullValue()); assertThat(docMapper.mappers().fullName("name.not_indexed3"), nullValue()); - json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-data.json"); + json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-data.json"); doc = docMapper.parse(json).doc(); f = doc.getField("name"); assertThat(f, notNullValue()); f = doc.getField("name.indexed"); assertThat(f, notNullValue()); - mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping3.json"); - XContentDocumentMapper docMapper3 = parser.parse(mapping); + mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-mapping3.json"); + DocumentMapper docMapper3 = parser.parse(mapping); mergeResult = docMapper.merge(docMapper3, mergeFlags().simulate(true)); assertThat(Arrays.toString(mergeResult.conflicts()), mergeResult.hasConflicts(), equalTo(false)); @@ -97,8 +96,8 @@ public class JavaMultiFieldMergeTests { assertThat(docMapper.mappers().fullName("name.not_indexed3"), nullValue()); - mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping4.json"); - XContentDocumentMapper docMapper4 = parser.parse(mapping); + mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/multifield/merge/test-mapping4.json"); + DocumentMapper docMapper4 = parser.parse(mapping); mergeResult = docMapper.merge(docMapper4, mergeFlags().simulate(true)); assertThat(Arrays.toString(mergeResult.conflicts()), mergeResult.hasConflicts(), equalTo(false)); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-data.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-data.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-data.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-data.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping1.json new file mode 100644 index 00000000000..6cb370ec795 --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping1.json @@ -0,0 +1,11 @@ +{ + person : { + properties : { + "name" : { + type: "string", + index : "analyzed", + store : "yes" + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping2.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping2.json new file mode 100644 index 00000000000..beb4ffd7682 --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping2.json @@ -0,0 +1,25 @@ +{ + person : { + properties : { + "name" : { + type : "multi_field", + "fields" : { + "name" : { + type: "string", + index : "analyzed", + store : "yes" + }, + "indexed" : { + type: "string", + index : "analyzed" + }, + "not_indexed" : { + type: "string", + index : "no", + store : "yes" + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping3.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping3.json new file mode 100644 index 00000000000..ae87f840674 --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping3.json @@ -0,0 +1,30 @@ +{ + person : { + properties : { + "name" : { + type : "multi_field", + "fields" : { + "name" : { + type: "string", + index : "analyzed", + store : "yes" + }, + "indexed" : { + type: "string", + index : "analyzed" + }, + "not_indexed" : { + type: "string", + index : "no", + store : "yes" + }, + "not_indexed2" : { + type: "string", + index : "no", + store : "yes" + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping4.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping4.json similarity index 50% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping4.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping4.json index 1b12e5ca258..b98804db862 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping4.json +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/merge/test-mapping4.json @@ -4,7 +4,11 @@ "name" : { type : "multi_field", "fields" : { - "not_indexed3" : {type: "string", index : "no", store : "yes"} + "not_indexed3" : { + type: "string", + index : "no", + store : "yes" + } } } } diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/test-data.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/test-data.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/test-data.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/test-data.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/test-mapping.json new file mode 100644 index 00000000000..fc5bcdaf59d --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/multifield/test-mapping.json @@ -0,0 +1,41 @@ +{ + "person" : { + "properties" : { + "name" : { + "type" : "multi_field", + "fields" : { + "name" : { + "type": "string", + "index" : "analyzed", + "store" : "yes" + }, + "indexed" : { + "type": "string", + "index" : "analyzed" + }, + "not_indexed" : { + "type": "string", + "index" : "no", + "store" : "yes" + } + } + }, + "object1" : { + "properties" : { + "multi1" : { + "type" : "multi_field", + "fields" : { + "multi1" : { + "type": "date" + }, + "string" : { + "type": "string", + "index" : "not_analyzed" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/object/NullValueObjectMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/object/NullValueObjectMappingTests.java similarity index 90% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/object/NullValueObjectMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/object/NullValueObjectMappingTests.java index 9eae35e4ba7..db581026c27 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/object/NullValueObjectMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/object/NullValueObjectMappingTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.object; +package org.elasticsearch.index.mapper.object; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import java.io.IOException; @@ -40,7 +40,7 @@ public class NullValueObjectMappingTests { .startObject("properties").startObject("obj1").field("type", "object").endObject().endObject() .endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/overridetype/OverrideTypeMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/overridetype/OverrideTypeMappingTests.java similarity index 85% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/overridetype/OverrideTypeMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/overridetype/OverrideTypeMappingTests.java index ac5b5101b1a..14e78a5e395 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/overridetype/OverrideTypeMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/overridetype/OverrideTypeMappingTests.java @@ -17,11 +17,11 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.overridetype; +package org.elasticsearch.index.mapper.overridetype; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -37,7 +37,7 @@ public class OverrideTypeMappingTests { .startObject("_source").field("enabled", false).endObject() .endObject().endObject().string(); - XContentDocumentMapper mapper = MapperTests.newParser().parse("my_type", mapping); + DocumentMapper mapper = MapperTests.newParser().parse("my_type", mapping); assertThat(mapper.type(), equalTo("my_type")); assertThat(mapper.sourceMapper().enabled(), equalTo(false)); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/parent/ParentMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/parent/ParentMappingTests.java similarity index 88% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/parent/ParentMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/parent/ParentMappingTests.java index 00afb896fb1..d67f9d2fa01 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/parent/ParentMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/parent/ParentMappingTests.java @@ -17,14 +17,14 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.parent; +package org.elasticsearch.index.mapper.parent; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.SourceToParse; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -39,7 +39,7 @@ public class ParentMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_parent").field("type", "p_type").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = docMapper.parse(SourceToParse.source(XContentFactory.jsonBuilder() .startObject() @@ -55,7 +55,7 @@ public class ParentMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_parent").field("type", "p_type").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = docMapper.parse(SourceToParse.source(XContentFactory.jsonBuilder() .startObject() @@ -70,7 +70,7 @@ public class ParentMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_parent").field("type", "p_type").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = docMapper.parse(SourceToParse.source(XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/PathMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/PathMapperTests.java similarity index 90% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/PathMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/PathMapperTests.java index 74943e6598c..1fdd327e914 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/PathMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/PathMapperTests.java @@ -17,10 +17,10 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.path; +package org.elasticsearch.index.mapper.path; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import java.io.IOException; @@ -35,8 +35,8 @@ import static org.hamcrest.Matchers.*; public class PathMapperTests { @Test public void testPathMapping() throws IOException { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/path/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/path/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat(docMapper.mappers().indexName("first1"), notNullValue()); assertThat(docMapper.mappers().indexName("name1.first1"), nullValue()); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/test-mapping.json new file mode 100644 index 00000000000..0f7da102c86 --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/path/test-mapping.json @@ -0,0 +1,32 @@ +{ + "person" : { + "properties" : { + "name1" : { + "type" : "object", + "path" : "just_name", + "properties" : { + "first1" : { + "type" : "string" + }, + "last1" : { + "type" : "string", + "index_name" : "i_last_1" + } + } + }, + "name2" : { + "type" : "object", + "path" : "full", + "properties" : { + "first2" : { + "type" : "string" + }, + "last2" : { + "type" : "string", + "index_name" : "i_last_2" + } + } + } + } + } +} diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/routing/RoutingTypeMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/routing/RoutingTypeMapperTests.java similarity index 86% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/routing/RoutingTypeMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/routing/RoutingTypeMapperTests.java index df136cea619..dd8538ad820 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/routing/RoutingTypeMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/routing/RoutingTypeMapperTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.routing; +package org.elasticsearch.index.mapper.routing; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.SourceToParse; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -37,7 +37,7 @@ public class RoutingTypeMapperTests { @Test public void simpleRoutingMapperTests() throws Exception { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = docMapper.parse(SourceToParse.source(XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/SimpleMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/SimpleMapperTests.java similarity index 77% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/SimpleMapperTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/SimpleMapperTests.java index 43a356dfac5..2edfb471959 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/SimpleMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/SimpleMapperTests.java @@ -17,19 +17,19 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.simple; +package org.elasticsearch.index.mapper.simple; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.Uid; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapperParser; import org.testng.annotations.Test; import static org.apache.lucene.document.Field.Store.*; import static org.elasticsearch.common.io.Streams.*; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*; @@ -39,13 +39,13 @@ import static org.hamcrest.Matchers.*; public class SimpleMapperTests { @Test public void testSimpleMapper() throws Exception { - XContentDocumentMapperParser mapperParser = MapperTests.newParser(); - XContentDocumentMapper docMapper = doc("test", + DocumentMapperParser mapperParser = MapperTests.newParser(); + DocumentMapper docMapper = doc("test", rootObject("person") .add(object("name").add(stringField("first").store(YES).index(Field.Index.NO))) ).sourceField(source()).build(mapperParser); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test1.json"); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/simple/test1.json"); Document doc = docMapper.parse("person", "1", json).doc(); assertThat((double) doc.getBoost(), closeTo(3.7, 0.01)); @@ -59,13 +59,13 @@ public class SimpleMapperTests { } @Test public void testParseToJsonAndParse() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); String builtMapping = docMapper.mappingSource().string(); // System.out.println(builtMapping); // reparse it - XContentDocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test1.json"); + DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/simple/test1.json"); Document doc = builtDocMapper.parse(json).doc(); assertThat(doc.get(docMapper.uidMapper().names().indexName()), equalTo(Uid.createUid("person", "1"))); assertThat((double) doc.getBoost(), closeTo(3.7, 0.01)); @@ -75,12 +75,12 @@ public class SimpleMapperTests { } @Test public void testSimpleParser() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat((String) docMapper.meta().get("param1"), equalTo("value1")); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test1.json"); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/simple/test1.json"); Document doc = docMapper.parse(json).doc(); assertThat(doc.get(docMapper.uidMapper().names().indexName()), equalTo(Uid.createUid("person", "1"))); assertThat((double) doc.getBoost(), closeTo(3.7, 0.01)); @@ -90,9 +90,9 @@ public class SimpleMapperTests { } @Test public void testSimpleParserNoTypeNoId() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); - byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test1-notype-noid.json"); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); + byte[] json = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/simple/test1-notype-noid.json"); Document doc = docMapper.parse("person", "1", json).doc(); assertThat(doc.get(docMapper.uidMapper().names().indexName()), equalTo(Uid.createUid("person", "1"))); assertThat((double) doc.getBoost(), closeTo(3.7, 0.01)); @@ -102,13 +102,13 @@ public class SimpleMapperTests { } @Test public void testAttributes() throws Exception { - String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json"); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/simple/test-mapping.json"); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); assertThat((String) docMapper.meta().get("param1"), equalTo("value1")); String builtMapping = docMapper.mappingSource().string(); - XContentDocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); + DocumentMapper builtDocMapper = MapperTests.newParser().parse(builtMapping); assertThat((String) builtDocMapper.meta().get("param1"), equalTo("value1")); } } diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test-mapping.json new file mode 100644 index 00000000000..2ca8b4762c0 --- /dev/null +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test-mapping.json @@ -0,0 +1,98 @@ +{ + person : { + "_meta" : { + "param1" : "value1" + }, + date_formats : ["yyyy-MM-dd", "dd-MM-yyyy"], + dynamic : false, + enabled : true, + _id : { + name : "_id", + index_name : "_id" + }, + _source : { + name : "_source" + }, + _type : { + name : "_type" + }, + _boost : { + name : "_boost", + null_value : 2.0 + }, + properties : { + name : { + type : "object", + dynamic : false, + properties : { + first : { + type : "string", + store : "yes" + }, + last : { + type : "string", + index : "not_analyzed" + } + } + }, + address : { + type : "object", + properties : { + first : { + properties : { + location : { + type : "string", + store : "yes", + index_name : "firstLocation" + } + } + }, + last : { + properties : { + location : { + type : "string" + } + } + } + } + }, + age : { + type : "integer", + null_value : 0 + }, + birthdate : { + type : "date", + format : "yyyy-MM-dd" + }, + nerd : { + type : "boolean" + }, + dogs : { + type : "string", + index_name : "dog" + }, + complex : { + type : "object", + properties : { + value1 : { + type : "string" + }, + value2 : { + type : "string" + } + } + }, + complex2 : { + type : "object", + properties : { + value1 : { + type : "string" + }, + value2 : { + type : "string" + } + } + } + } + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1-notype-noid.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1-notype-noid.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1-notype-noid.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1-notype-noid.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1-notype.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1-notype.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1-notype.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1-notype.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1.json similarity index 100% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test1.json rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/simple/test1.json diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/size/SizeMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/size/SizeMappingTests.java similarity index 88% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/size/SizeMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/size/SizeMappingTests.java index 8795c9a4678..7958429e691 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/size/SizeMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/size/SizeMappingTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.size; +package org.elasticsearch.index.mapper.size; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.SourceToParse; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -36,7 +36,7 @@ public class SizeMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_size").field("enabled", true).endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); byte[] source = XContentFactory.jsonBuilder() .startObject() @@ -53,7 +53,7 @@ public class SizeMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_size").field("enabled", true).field("store", "yes").endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); byte[] source = XContentFactory.jsonBuilder() .startObject() @@ -70,7 +70,7 @@ public class SizeMappingTests { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .startObject("_size").field("enabled", false).endObject() .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); byte[] source = XContentFactory.jsonBuilder() .startObject() @@ -85,7 +85,7 @@ public class SizeMappingTests { @Test public void testSizeNotSet() throws Exception { String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") .endObject().endObject().string(); - XContentDocumentMapper docMapper = MapperTests.newParser().parse(mapping); + DocumentMapper docMapper = MapperTests.newParser().parse(mapping); byte[] source = XContentFactory.jsonBuilder() .startObject() diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/CompressSourceMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/CompressSourceMappingTests.java similarity index 89% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/CompressSourceMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/CompressSourceMappingTests.java index d1c8f70b15c..3343c2fe5ce 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/CompressSourceMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/CompressSourceMappingTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.source; +package org.elasticsearch.index.mapper.source; import org.elasticsearch.common.compress.lzf.LZF; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -39,7 +39,7 @@ public class CompressSourceMappingTests { .startObject("_source").field("compress", false).endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field1", "value1") @@ -54,7 +54,7 @@ public class CompressSourceMappingTests { .startObject("_source").field("compress", true).endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field1", "value1") @@ -69,7 +69,7 @@ public class CompressSourceMappingTests { .startObject("_source").field("compress_threshold", "200b").endObject() .endObject().endObject().string(); - XContentDocumentMapper documentMapper = MapperTests.newParser().parse(mapping); + DocumentMapper documentMapper = MapperTests.newParser().parse(mapping); ParsedDocument doc = documentMapper.parse("type", "1", XContentFactory.jsonBuilder().startObject() .field("field1", "value1") diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/DefaultSourceMappingTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/DefaultSourceMappingTests.java similarity index 86% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/DefaultSourceMappingTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/DefaultSourceMappingTests.java index 4f312037f04..71b733dfcec 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/source/DefaultSourceMappingTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/source/DefaultSourceMappingTests.java @@ -17,13 +17,13 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.source; +package org.elasticsearch.index.mapper.source; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -39,7 +39,7 @@ public class DefaultSourceMappingTests { .startObject("_source").field("enabled", false).endObject() .endObject().endObject().string(); - XContentDocumentMapper mapper = MapperTests.newParser().parse("my_type", null, defaultMapping); + DocumentMapper mapper = MapperTests.newParser().parse("my_type", null, defaultMapping); assertThat(mapper.type(), equalTo("my_type")); assertThat(mapper.sourceMapper().enabled(), equalTo(false)); @@ -62,7 +62,7 @@ public class DefaultSourceMappingTests { .startObject("_source").field("enabled", true).endObject() .endObject().endObject().string(); - XContentDocumentMapper mapper = MapperTests.newParser().parse("my_type", mapping, defaultMapping); + DocumentMapper mapper = MapperTests.newParser().parse("my_type", mapping, defaultMapping); assertThat(mapper.type(), equalTo("my_type")); assertThat(mapper.sourceMapper().enabled(), equalTo(true)); } @@ -75,7 +75,7 @@ public class DefaultSourceMappingTests { MapperService mapperService = MapperTests.newMapperService(); mapperService.add(MapperService.DEFAULT_MAPPING, defaultMapping); - XContentDocumentMapper mapper = (XContentDocumentMapper) mapperService.documentMapperWithAutoCreate("my_type"); + DocumentMapper mapper = (DocumentMapper) mapperService.documentMapperWithAutoCreate("my_type"); assertThat(mapper.type(), equalTo("my_type")); assertThat(mapper.sourceMapper().enabled(), equalTo(false)); } @@ -93,7 +93,7 @@ public class DefaultSourceMappingTests { .endObject().endObject().string(); mapperService.add("my_type", mapping); - XContentDocumentMapper mapper = (XContentDocumentMapper) mapperService.documentMapper("my_type"); + DocumentMapper mapper = (DocumentMapper) mapperService.documentMapper("my_type"); assertThat(mapper.type(), equalTo("my_type")); assertThat(mapper.sourceMapper().enabled(), equalTo(true)); } diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseDocumentTypeLevelsTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseDocumentTypeLevelsTests.java similarity index 90% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseDocumentTypeLevelsTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseDocumentTypeLevelsTests.java index e24a0771e5a..39e281eaf83 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseDocumentTypeLevelsTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseDocumentTypeLevelsTests.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.typelevels; +package org.elasticsearch.index.mapper.typelevels; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.elasticsearch.index.mapper.ParsedDocument; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -36,7 +36,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testNoLevel() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -54,7 +54,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testTypeLevel() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") @@ -72,7 +72,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testNoLevelWithFieldTypeAsValue() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -92,7 +92,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testTypeLevelWithFieldTypeAsValue() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") @@ -112,7 +112,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testNoLevelWithFieldTypeAsObject() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -132,7 +132,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testTypeLevelWithFieldTypeAsObject() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") @@ -152,7 +152,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testNoLevelWithFieldTypeAsValueNotFirst() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") @@ -172,7 +172,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testTypeLevelWithFieldTypeAsValueNotFirst() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") @@ -192,7 +192,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testNoLevelWithFieldTypeAsObjectNotFirst() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject() @@ -213,7 +213,7 @@ public class ParseDocumentTypeLevelsTests { @Test public void testTypeLevelWithFieldTypeAsObjectNotFirst() throws Exception { String defaultMapping = XContentFactory.jsonBuilder().startObject().startObject("type").endObject().endObject().string(); - XContentDocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); + DocumentMapper defaultMapper = MapperTests.newParser().parse(defaultMapping); ParsedDocument doc = defaultMapper.parse("type", "1", XContentFactory.jsonBuilder() .startObject().startObject("type") diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseMappingTypeLevelTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseMappingTypeLevelTests.java similarity index 85% rename from modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseMappingTypeLevelTests.java rename to modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseMappingTypeLevelTests.java index 96a3990bef7..193dbddf26c 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/typelevels/ParseMappingTypeLevelTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/typelevels/ParseMappingTypeLevelTests.java @@ -17,11 +17,11 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent.typelevels; +package org.elasticsearch.index.mapper.typelevels; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.index.mapper.xcontent.MapperTests; -import org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperTests; import org.testng.annotations.Test; import static org.hamcrest.MatcherAssert.*; @@ -37,7 +37,7 @@ public class ParseMappingTypeLevelTests { .startObject("_source").field("enabled", false).endObject() .endObject().endObject().string(); - XContentDocumentMapper mapper = MapperTests.newParser().parse("type", mapping); + DocumentMapper mapper = MapperTests.newParser().parse("type", mapping); assertThat(mapper.type(), equalTo("type")); assertThat(mapper.sourceMapper().enabled(), equalTo(false)); diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/store-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/store-mapping.json deleted file mode 100644 index 356d7ef3d29..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/all/store-mapping.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "person" : { - "_all" : {"enabled" : true, "store" : "yes"}, - "properties" : { - "name" : { - "type" : "object", - "dynamic" : false, - "properties" : { - "first" : {"type" : "string", "store" : "yes", "include_in_all" : false}, - "last" : {"type" : "string", "index" : "not_analyzed"} - } - }, - "address" : { - "type" : "object", - "include_in_all" : false, - "properties" : { - "first" : { - "properties" : { - "location" : {"type" : "string", "store" : "yes", "index_name" : "firstLocation"} - } - }, - "last" : { - "properties" : { - "location" : {"type" : "string"} - } - } - } - }, - "simple1" : {"type" : "long", "include_in_all" : true}, - "simple2" : {"type" : "long", "include_in_all" : false} - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage1.json deleted file mode 100644 index 2b17daba583..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage1.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - person : { - properties : { - name : {type : "string"} - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage2.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage2.json deleted file mode 100644 index 5ae578c602c..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/merge/test1/stage2.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - person : { - properties : { - name : {type : "string"}, - age : {type : "integer"} - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping1.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping1.json deleted file mode 100644 index 36902529ef2..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping1.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - person : { - properties : { - "name" : {type: "string", index : "analyzed", store : "yes"} - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping2.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping2.json deleted file mode 100644 index 25d03d4bee0..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping2.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - person : { - properties : { - "name" : { - type : "multi_field", - "fields" : { - "name" : {type: "string", index : "analyzed", store : "yes"}, - "indexed" : {type: "string", index : "analyzed"}, - "not_indexed" : {type: "string", index : "no", store : "yes"} - } - } - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping3.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping3.json deleted file mode 100644 index 748a5614a5e..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/merge/test-mapping3.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - person : { - properties : { - "name" : { - type : "multi_field", - "fields" : { - "name" : {type: "string", index : "analyzed", store : "yes"}, - "indexed" : {type: "string", index : "analyzed"}, - "not_indexed" : {type: "string", index : "no", store : "yes"}, - "not_indexed2" : {type: "string", index : "no", store : "yes"} - } - } - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/test-mapping.json deleted file mode 100644 index edce702ddc3..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/multifield/test-mapping.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "person" : { - "properties" : { - "name" : { - "type" : "multi_field", - "fields" : { - "name" : {"type": "string", "index" : "analyzed", "store" : "yes"}, - "indexed" : {"type": "string", "index" : "analyzed"}, - "not_indexed" : {"type": "string", "index" : "no", "store" : "yes"} - } - }, - "object1" : { - "properties" : { - "multi1" : { - "type" : "multi_field", - "fields" : { - "multi1" : {"type": "date"}, - "string" : {"type": "string", "index" : "not_analyzed"} - } - } - } - } - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/test-mapping.json deleted file mode 100644 index 8b4b554c7c2..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/path/test-mapping.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "person" : { - "properties" : { - "name1" : { - "type" : "object", - "path" : "just_name", - "properties" : { - "first1" : {"type" : "string"}, - "last1" : {"type" : "string", "index_name" : "i_last_1"} - } - }, - "name2" : { - "type" : "object", - "path" : "full", - "properties" : { - "first2" : {"type" : "string"}, - "last2" : {"type" : "string", "index_name" : "i_last_2"} - } - } - } - } -} diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json deleted file mode 100644 index f7f6811ac60..00000000000 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/xcontent/simple/test-mapping.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - person : { - "_meta" : { - "param1" : "value1" - }, - date_formats : ["yyyy-MM-dd", "dd-MM-yyyy"], - dynamic : false, - enabled : true, - _id : {name : "_id", index_name : "_id"}, - _source : {name : "_source"}, - _type : {name : "_type"}, - _boost : {name : "_boost", null_value : 2.0}, - properties : { - name : { - type : "object", - dynamic : false, - properties : { - first : {type : "string", store : "yes"}, - last : {type : "string", index : "not_analyzed"} - } - }, - address : { - type : "object", - properties : { - first : { - properties : { - location : {type : "string", store : "yes", index_name : "firstLocation"} - } - }, - last : { - properties : { - location : {type : "string"} - } - } - } - }, - age : {type : "integer", null_value : 0}, - birthdate : {type : "date", format : "yyyy-MM-dd"}, - nerd : {type : "boolean"}, - dogs : {type : "string", index_name : "dog"}, - complex : { - type : "object", - properties : { - value1 : {type : "string"}, - value2 : {type : "string"} - } - }, - complex2 : { - type : "object", - properties : { - value1 : {type : "string"}, - value2 : {type : "string"} - } - } - } - } -} \ No newline at end of file diff --git a/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/AttachmentMapper.java b/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java similarity index 91% rename from plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/AttachmentMapper.java rename to plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java index 63fd7716eb3..20758524e95 100644 --- a/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/AttachmentMapper.java +++ b/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/AttachmentMapper.java @@ -17,22 +17,28 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.attachment; import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; import org.elasticsearch.common.io.FastByteArrayInputStream; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.FieldMapperListener; +import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MergeContext; import org.elasticsearch.index.mapper.MergeMappingException; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.core.DateFieldMapper; +import org.elasticsearch.index.mapper.core.StringFieldMapper; import java.io.IOException; import java.util.Map; -import static org.elasticsearch.index.mapper.xcontent.XContentMapperBuilders.*; -import static org.elasticsearch.index.mapper.xcontent.XContentTypeParsers.*; +import static org.elasticsearch.index.mapper.MapperBuilders.*; +import static org.elasticsearch.index.mapper.core.TypeParsers.*; import static org.elasticsearch.plugin.mapper.attachments.tika.TikaInstance.*; /** @@ -52,7 +58,7 @@ import static org.elasticsearch.plugin.mapper.attachments.tika.TikaInstance.*; * * @author kimchy (shay.banon) */ -public class AttachmentMapper implements XContentMapper { +public class AttachmentMapper implements Mapper { public static final String CONTENT_TYPE = "attachment"; @@ -60,7 +66,7 @@ public class AttachmentMapper implements XContentMapper { public static final ContentPath.Type PATH_TYPE = ContentPath.Type.FULL; } - public static class Builder extends XContentMapper.Builder { + public static class Builder extends Mapper.Builder { private ContentPath.Type pathType = Defaults.PATH_TYPE; @@ -149,9 +155,9 @@ public class AttachmentMapper implements XContentMapper { * * @author kimchy (shay.banon) */ - public static class TypeParser implements XContentMapper.TypeParser { + public static class TypeParser implements Mapper.TypeParser { - @SuppressWarnings({"unchecked"}) @Override public XContentMapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + @SuppressWarnings({"unchecked"}) @Override public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { AttachmentMapper.Builder builder = new AttachmentMapper.Builder(name); for (Map.Entry entry : node.entrySet()) { @@ -272,7 +278,7 @@ public class AttachmentMapper implements XContentMapper { keywordsMapper.parse(context); } - @Override public void merge(XContentMapper mergeWith, MergeContext mergeContext) throws MergeMappingException { + @Override public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException { // ignore this for now } diff --git a/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/RegisterAttachmentType.java b/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/RegisterAttachmentType.java similarity index 87% rename from plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/RegisterAttachmentType.java rename to plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/RegisterAttachmentType.java index cddb366f58c..2798a73fafe 100644 --- a/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/xcontent/RegisterAttachmentType.java +++ b/plugins/mapper/attachments/src/main/java/org/elasticsearch/index/mapper/attachment/RegisterAttachmentType.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper.xcontent; +package org.elasticsearch.index.mapper.attachment; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; @@ -34,6 +34,6 @@ public class RegisterAttachmentType extends AbstractIndexComponent { @Inject public RegisterAttachmentType(Index index, @IndexSettings Settings indexSettings, MapperService mapperService) { super(index, indexSettings); - ((XContentDocumentMapperParser) mapperService.documentMapperParser()).putTypeParser("attachment", new AttachmentMapper.TypeParser()); + mapperService.documentMapperParser().putTypeParser("attachment", new AttachmentMapper.TypeParser()); } } diff --git a/plugins/mapper/attachments/src/main/java/org/elasticsearch/plugin/mapper/attachments/AttachmentsIndexModule.java b/plugins/mapper/attachments/src/main/java/org/elasticsearch/plugin/mapper/attachments/AttachmentsIndexModule.java index e9e87ef509f..7bdc3a80dff 100644 --- a/plugins/mapper/attachments/src/main/java/org/elasticsearch/plugin/mapper/attachments/AttachmentsIndexModule.java +++ b/plugins/mapper/attachments/src/main/java/org/elasticsearch/plugin/mapper/attachments/AttachmentsIndexModule.java @@ -20,7 +20,7 @@ package org.elasticsearch.plugin.mapper.attachments; import org.elasticsearch.common.inject.AbstractModule; -import org.elasticsearch.index.mapper.xcontent.RegisterAttachmentType; +import org.elasticsearch.index.mapper.attachment.RegisterAttachmentType; /** * @author kimchy (shay.banon) diff --git a/plugins/mapper/attachments/src/test/java/org/elasticsearch/index/mapper/xcontent/SimpleAttachmentMapperTests.java b/plugins/mapper/attachments/src/test/java/org/elasticsearch/index/mapper/xcontent/SimpleAttachmentMapperTests.java index 7cad6b7095a..a932afc838e 100644 --- a/plugins/mapper/attachments/src/test/java/org/elasticsearch/index/mapper/xcontent/SimpleAttachmentMapperTests.java +++ b/plugins/mapper/attachments/src/test/java/org/elasticsearch/index/mapper/xcontent/SimpleAttachmentMapperTests.java @@ -22,6 +22,9 @@ package org.elasticsearch.index.mapper.xcontent; import org.apache.lucene.document.Document; import org.elasticsearch.index.Index; import org.elasticsearch.index.analysis.AnalysisService; +import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.DocumentMapperParser; +import org.elasticsearch.index.mapper.attachment.AttachmentMapper; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -36,16 +39,16 @@ import static org.hamcrest.Matchers.*; @Test public class SimpleAttachmentMapperTests { - private XContentDocumentMapperParser mapperParser; + private DocumentMapperParser mapperParser; @BeforeClass public void setupMapperParser() { - mapperParser = new XContentDocumentMapperParser(new Index("test"), new AnalysisService(new Index("test"))); + mapperParser = new DocumentMapperParser(new Index("test"), new AnalysisService(new Index("test"))); mapperParser.putTypeParser(AttachmentMapper.CONTENT_TYPE, new AttachmentMapper.TypeParser()); } @Test public void testSimpleMappings() throws Exception { String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/xcontent/test-mapping.json"); - XContentDocumentMapper docMapper = mapperParser.parse(mapping); + DocumentMapper docMapper = mapperParser.parse(mapping); byte[] html = copyToBytesFromClasspath("/org/elasticsearch/index/mapper/xcontent/testXHTML.html"); byte[] json = jsonBuilder().startObject().field("_id", 1).field("file", html).endObject().copiedBytes();