Prechádzať zdrojové kódy

Remove type parameter from PutMappingRequest.buildFromSimplifiedDef() (#50844)

Mappings built by this method should all be wrapped with _doc, so there's no need
to pass the type any more. This also renames the method to simpleMapping, in line
with CreateIndexRequest, to help migration by causing compilation errors; and changes
the signature to take a String... rather than an Object....

Relates to #41059
Alan Woodward 5 rokov pred
rodič
commit
807a4fb996
23 zmenil súbory, kde vykonal 43 pridanie a 52 odobranie
  1. 1 1
      modules/mapper-extras/src/test/java/org/elasticsearch/index/query/RankFeatureQueryBuilderTests.java
  2. 2 2
      modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java
  3. 2 2
      modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateWithNestedQueryBuilderTests.java
  4. 1 1
      modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java
  5. 2 2
      server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java
  6. 1 1
      server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequestBuilder.java
  7. 7 15
      server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest.java
  8. 1 1
      server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequestBuilder.java
  9. 2 3
      server/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequestBuilder.java
  10. 3 2
      server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateRequest.java
  11. 2 2
      server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateRequestBuilder.java
  12. 2 2
      server/src/test/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequestTests.java
  13. 1 1
      server/src/test/java/org/elasticsearch/index/mapper/RangeFieldQueryStringQueryBuilderTests.java
  14. 1 2
      server/src/test/java/org/elasticsearch/index/query/MatchQueryBuilderTests.java
  15. 1 1
      server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java
  16. 1 1
      server/src/test/java/org/elasticsearch/index/query/TermsSetQueryBuilderTests.java
  17. 3 3
      server/src/test/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java
  18. 1 1
      server/src/test/java/org/elasticsearch/search/searchafter/SearchAfterIT.java
  19. 3 3
      test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java
  20. 1 1
      test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java
  21. 2 2
      x-pack/plugin/core/src/test/java/org/elasticsearch/snapshots/SourceOnlySnapshotIT.java
  22. 2 2
      x-pack/plugin/security/src/test/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java
  23. 1 1
      x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java

+ 1 - 1
modules/mapper-extras/src/test/java/org/elasticsearch/index/query/RankFeatureQueryBuilderTests.java

@@ -44,7 +44,7 @@ public class RankFeatureQueryBuilderTests extends AbstractQueryTestCase<RankFeat
 
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
-        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef("_doc",
+        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
             "my_feature_field", "type=rank_feature",
             "my_negative_feature_field", "type=rank_feature,positive_score_impact=false",
             "my_feature_vector_field", "type=rank_features"))), MapperService.MergeReason.MAPPING_UPDATE);

+ 2 - 2
modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateQueryBuilderTests.java

@@ -89,10 +89,10 @@ public class PercolateQueryBuilderTests extends AbstractQueryTestCase<PercolateQ
         aliasField = randomAlphaOfLength(4);
 
         docType = "_doc";
-        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(docType,
+        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
                 queryField, "type=percolator", aliasField, "type=alias,path=" + queryField
         ))), MapperService.MergeReason.MAPPING_UPDATE);
-        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(docType,
+        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
                 STRING_FIELD_NAME, "type=text"
         ))), MapperService.MergeReason.MAPPING_UPDATE);
     }

+ 2 - 2
modules/percolator/src/test/java/org/elasticsearch/percolator/PercolateWithNestedQueryBuilderTests.java

@@ -35,8 +35,8 @@ public class PercolateWithNestedQueryBuilderTests extends PercolateQueryBuilderT
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
         super.initializeAdditionalMappings(mapperService);
-        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(
-                "_doc", "some_nested_object", "type=nested"))), MapperService.MergeReason.MAPPING_UPDATE);
+        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
+                "some_nested_object", "type=nested"))), MapperService.MergeReason.MAPPING_UPDATE);
     }
 
     public void testDetectsNestedDocuments() throws IOException {

+ 1 - 1
modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorQuerySearchIT.java

@@ -447,7 +447,7 @@ public class PercolatorQuerySearchIT extends ESIntegTestCase {
             fieldMapping.append(",index_options=offsets");
         }
         assertAcked(client().admin().indices().prepareCreate("test")
-                .setMapping("id", "type=keyword", "field1", fieldMapping, "query", "type=percolator")
+                .setMapping("id", "type=keyword", "field1", fieldMapping.toString(), "query", "type=percolator")
         );
         client().prepareIndex("test").setId("1")
                 .setSource(jsonBuilder().startObject()

+ 2 - 2
server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java

@@ -253,8 +253,8 @@ public class CreateIndexRequest extends AcknowledgedRequest<CreateIndexRequest>
      * A specialized simplified mapping source method, takes the form of simple properties definition:
      * ("field1", "type=string,store=true").
      */
-    public CreateIndexRequest simpleMapping(Object... source) {
-        mapping(PutMappingRequest.buildFromSimplifiedDef(MapperService.SINGLE_MAPPING_NAME, source));
+    public CreateIndexRequest simpleMapping(String... source) {
+        mapping(PutMappingRequest.simpleMapping(source));
         return this;
     }
 

+ 1 - 1
server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequestBuilder.java

@@ -135,7 +135,7 @@ public class CreateIndexRequestBuilder
      * A specialized simplified mapping source method, takes the form of simple properties definition:
      * ("field1", "type=string,store=true").
      */
-    public CreateIndexRequestBuilder setMapping(Object... source) {
+    public CreateIndexRequestBuilder setMapping(String... source) {
         request.simpleMapping(source);
         return this;
     }

+ 7 - 15
server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest.java

@@ -172,8 +172,8 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
      * Also supports metadata mapping fields such as `_all` and `_parent` as property definition, these metadata
      * mapping fields will automatically be put on the top level mapping object.
      */
-    public PutMappingRequest source(Object... source) {
-        return source(buildFromSimplifiedDef(MapperService.SINGLE_MAPPING_NAME, source));
+    public PutMappingRequest source(String... source) {
+        return source(simpleMapping(source));
     }
 
     public String origin() {
@@ -187,8 +187,6 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
     }
 
     /**
-     * @param type
-     *            the mapping type
      * @param source
      *            consisting of field/properties pairs (e.g. "field1",
      *            "type=string,store=true")
@@ -196,22 +194,19 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
      *             if the number of the source arguments is not divisible by two
      * @return the mappings definition
      */
-    public static XContentBuilder buildFromSimplifiedDef(String type, Object... source) {
+    public static XContentBuilder simpleMapping(String... source) {
         if (source.length % 2 != 0) {
             throw new IllegalArgumentException("mapping source must be pairs of fieldnames and properties definition.");
         }
         try {
             XContentBuilder builder = XContentFactory.jsonBuilder();
             builder.startObject();
-            if (type != null) {
-                builder.startObject(type);
-            }
 
             for (int i = 0; i < source.length; i++) {
-                String fieldName = source[i++].toString();
+                String fieldName = source[i++];
                 if (RESERVED_FIELDS.contains(fieldName)) {
                     builder.startObject(fieldName);
-                    String[] s1 = Strings.splitStringByCommaToArray(source[i].toString());
+                    String[] s1 = Strings.splitStringByCommaToArray(source[i]);
                     for (String s : s1) {
                         String[] s2 = Strings.split(s, "=");
                         if (s2.length != 2) {
@@ -225,13 +220,13 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
 
             builder.startObject("properties");
             for (int i = 0; i < source.length; i++) {
-                String fieldName = source[i++].toString();
+                String fieldName = source[i++];
                 if (RESERVED_FIELDS.contains(fieldName)) {
                     continue;
                 }
 
                 builder.startObject(fieldName);
-                String[] s1 = Strings.splitStringByCommaToArray(source[i].toString());
+                String[] s1 = Strings.splitStringByCommaToArray(source[i]);
                 for (String s : s1) {
                     String[] s2 = Strings.split(s, "=");
                     if (s2.length != 2) {
@@ -242,9 +237,6 @@ public class PutMappingRequest extends AcknowledgedRequest<PutMappingRequest> im
                 builder.endObject();
             }
             builder.endObject();
-            if (type != null) {
-                builder.endObject();
-            }
             builder.endObject();
             return builder;
         } catch (Exception e) {

+ 1 - 1
server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequestBuilder.java

@@ -87,7 +87,7 @@ public class PutMappingRequestBuilder
      * A specialized simplified mapping source method, takes the form of simple properties definition:
      * ("field1", "type=string,store=true").
      */
-    public PutMappingRequestBuilder setSource(Object... source) {
+    public PutMappingRequestBuilder setSource(String... source) {
         request.source(source);
         return this;
     }

+ 2 - 3
server/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequestBuilder.java

@@ -25,7 +25,6 @@ import org.elasticsearch.client.ElasticsearchClient;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.common.unit.ByteSizeValue;
 import org.elasticsearch.common.unit.TimeValue;
-import org.elasticsearch.common.xcontent.XContentType;
 
 
 public class RolloverRequestBuilder extends MasterNodeOperationRequestBuilder<RolloverRequest, RolloverResponse,
@@ -74,12 +73,12 @@ public class RolloverRequestBuilder extends MasterNodeOperationRequestBuilder<Ro
         return this;
     }
 
-    public RolloverRequestBuilder mapping(String type, Object... source) {
+    public RolloverRequestBuilder simpleMapping(String... source) {
         this.request.getCreateIndexRequest().simpleMapping(source);
         return this;
     }
 
-    public RolloverRequestBuilder mapping(String type, String source, XContentType xContentType) {
+    public RolloverRequestBuilder mapping(String source) {
         this.request.getCreateIndexRequest().mapping(source);
         return this;
     }

+ 3 - 2
server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateRequest.java

@@ -43,6 +43,7 @@ import org.elasticsearch.common.xcontent.XContentHelper;
 import org.elasticsearch.common.xcontent.XContentParser;
 import org.elasticsearch.common.xcontent.XContentType;
 import org.elasticsearch.common.xcontent.support.XContentMapValues;
+import org.elasticsearch.index.mapper.MapperService;
 
 import java.io.IOException;
 import java.util.Collections;
@@ -295,8 +296,8 @@ public class PutIndexTemplateRequest extends MasterNodeRequest<PutIndexTemplateR
      * A specialized simplified mapping source method, takes the form of simple properties definition:
      * ("field1", "type=string,store=true").
      */
-    public PutIndexTemplateRequest mapping(String type, Object... source) {
-        mapping(type, PutMappingRequest.buildFromSimplifiedDef(type, source));
+    public PutIndexTemplateRequest mapping(String... source) {
+        mapping(MapperService.SINGLE_MAPPING_NAME, PutMappingRequest.simpleMapping(source));
         return this;
     }
 

+ 2 - 2
server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateRequestBuilder.java

@@ -122,8 +122,8 @@ public class PutIndexTemplateRequestBuilder
      * A specialized simplified mapping source method, takes the form of simple properties definition:
      * ("field1", "type=string,store=true").
      */
-    public PutIndexTemplateRequestBuilder addMapping(String type, Object... source) {
-        request.mapping(type, source);
+    public PutIndexTemplateRequestBuilder setMapping(String... source) {
+        request.mapping(source);
         return this;
     }
 

+ 2 - 2
server/src/test/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequestTests.java

@@ -50,13 +50,13 @@ public class PutMappingRequestTests extends ESTestCase {
     }
 
     /**
-     * Test that {@link PutMappingRequest#buildFromSimplifiedDef(String, Object...)}
+     * Test that {@link PutMappingRequest#simpleMapping(String...)}
      * rejects inputs where the {@code Object...} varargs of field name and properties are not
      * paired correctly
      */
     public void testBuildFromSimplifiedDef() {
         IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
-                () -> PutMappingRequest.buildFromSimplifiedDef("type", "only_field"));
+                () -> PutMappingRequest.simpleMapping("only_field"));
         assertEquals("mapping source must be pairs of fieldnames and properties definition.", e.getMessage());
     }
 }

+ 1 - 1
server/src/test/java/org/elasticsearch/index/mapper/RangeFieldQueryStringQueryBuilderTests.java

@@ -54,7 +54,7 @@ public class RangeFieldQueryStringQueryBuilderTests extends AbstractQueryTestCas
 
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
-        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef("_doc",
+        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
             INTEGER_RANGE_FIELD_NAME, "type=integer_range",
             LONG_RANGE_FIELD_NAME, "type=long_range",
             FLOAT_RANGE_FIELD_NAME, "type=float_range",

+ 1 - 2
server/src/test/java/org/elasticsearch/index/query/MatchQueryBuilderTests.java

@@ -348,8 +348,7 @@ public class MatchQueryBuilderTests extends AbstractQueryTestCase<MatchQueryBuil
 
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
-        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(
-            "_doc",
+        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
             "string_boost", "type=text,boost=4", "string_no_pos",
             "type=text,index_options=docs"))
             ),

+ 1 - 1
server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java

@@ -60,7 +60,7 @@ public class NestedQueryBuilderTests extends AbstractQueryTestCase<NestedQueryBu
 
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
-        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef("_doc",
+        mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
                 STRING_FIELD_NAME, "type=text",
                 INT_FIELD_NAME, "type=integer",
                 DOUBLE_FIELD_NAME, "type=double",

+ 1 - 1
server/src/test/java/org/elasticsearch/index/query/TermsSetQueryBuilderTests.java

@@ -77,7 +77,7 @@ public class TermsSetQueryBuilderTests extends AbstractQueryTestCase<TermsSetQue
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
         String docType = "_doc";
-        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(docType,
+        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
                 "m_s_m", "type=long"
         ))), MapperService.MergeReason.MAPPING_UPDATE);
     }

+ 3 - 3
server/src/test/java/org/elasticsearch/indices/template/SimpleIndexTemplateIT.java

@@ -382,7 +382,7 @@ public class SimpleIndexTemplateIT extends ESIntegTestCase {
 
         client().admin().indices().preparePutTemplate("template_with_aliases")
                 .setPatterns(Collections.singletonList("te*"))
-                .addMapping("_doc", "type", "type=keyword", "field", "type=text")
+                .setMapping("type", "type=keyword", "field", "type=text")
                 .addAlias(new Alias("simple_alias"))
                 .addAlias(new Alias("templated_alias-{index}"))
                 .addAlias(new Alias("filtered_alias").filter("{\"term\":{\"type\":\"type2\"}}"))
@@ -622,7 +622,7 @@ public class SimpleIndexTemplateIT extends ESIntegTestCase {
         client().admin().indices().preparePutTemplate("template1")
                 .setPatterns(Collections.singletonList("a*"))
                 .setOrder(0)
-                .addMapping("test", "field", "type=text")
+                .setMapping("field", "type=text")
                 .addAlias(new Alias("alias1").filter(termQuery("field", "value"))).get();
         // Indexing into b index should fail, since there is field with name 'field' in the mapping
         client().admin().indices().preparePutTemplate("template4")
@@ -706,7 +706,7 @@ public class SimpleIndexTemplateIT extends ESIntegTestCase {
                                               .setPatterns(Collections.singletonList("te*"))
                                               .setVersion(version)
                                               .setOrder(order)
-                                              .addMapping("test", "field", "type=text")
+                                              .setMapping("field", "type=text")
                                               .get());
 
         GetIndexTemplatesResponse response = client().admin().indices().prepareGetTemplates("versioned_template").get();

+ 1 - 1
server/src/test/java/org/elasticsearch/search/searchafter/SearchAfterIT.java

@@ -293,7 +293,7 @@ public class SearchAfterIT extends ESIntegTestCase {
                 fail("Can't match type [" + type + "]");
             }
         }
-        indexRequestBuilder.setMapping(mappings.toArray()).get();
+        indexRequestBuilder.setMapping(mappings.toArray(new String[0])).get();
         ensureGreen();
     }
 

+ 3 - 3
test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java

@@ -374,7 +374,7 @@ public abstract class AbstractBuilderTestCase extends ESTestCase {
             });
 
             if (registerType) {
-                mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef("_doc",
+                mapperService.merge("_doc", new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
                     STRING_FIELD_NAME, "type=text",
                     STRING_FIELD_NAME_2, "type=keyword",
                     STRING_ALIAS_FIELD_NAME, "type=alias,path=" + STRING_FIELD_NAME,
@@ -400,11 +400,11 @@ public abstract class AbstractBuilderTestCase extends ESTestCase {
                 testCase.initializeAdditionalMappings(mapperService);
             }
         }
-                
+
         public static Predicate<String> indexNameMatcher() {
             // Simplistic index name matcher used for testing
             return pattern -> Regex.simpleMatch(pattern, index.getName());
-        }                 
+        }
 
         @Override
         public void close() throws IOException {

+ 1 - 1
test/framework/src/main/java/org/elasticsearch/test/ESSingleNodeTestCase.java

@@ -284,7 +284,7 @@ public abstract class ESSingleNodeTestCase extends ESTestCase {
     /**
      * Create a new index on the singleton node with the provided index settings.
      */
-    protected IndexService createIndex(String index, Settings settings, String type, Object... mappings) {
+    protected IndexService createIndex(String index, Settings settings, String type, String... mappings) {
         CreateIndexRequestBuilder createIndexRequestBuilder = client().admin().indices().prepareCreate(index).setSettings(settings);
         if (type != null) {
             createIndexRequestBuilder.setMapping(mappings);

+ 2 - 2
x-pack/plugin/core/src/test/java/org/elasticsearch/snapshots/SourceOnlySnapshotIT.java

@@ -227,7 +227,7 @@ public class SourceOnlySnapshotIT extends ESIntegTestCase {
 
         CreateIndexRequestBuilder createIndexRequestBuilder = prepareCreate(sourceIdx, 0, Settings.builder()
             .put("number_of_shards", numShards).put("number_of_replicas", 0));
-        List<Object> mappings = new ArrayList<>();
+        List<String> mappings = new ArrayList<>();
         if (requireRouting) {
             mappings.addAll(Arrays.asList("_routing", "required=true"));
         }
@@ -236,7 +236,7 @@ public class SourceOnlySnapshotIT extends ESIntegTestCase {
             mappings.addAll(Arrays.asList("nested", "type=nested", "incorrect", "type=object"));
         }
         if (mappings.isEmpty() == false) {
-            createIndexRequestBuilder.setMapping(mappings.toArray());
+            createIndexRequestBuilder.setMapping(mappings.toArray(new String[0]));
         }
         assertAcked(createIndexRequestBuilder);
         ensureGreen();

+ 2 - 2
x-pack/plugin/security/src/test/java/org/elasticsearch/integration/FieldLevelSecurityRandomTests.java

@@ -126,7 +126,7 @@ public class FieldLevelSecurityRandomTests extends SecurityIntegTestCase {
                 .build();
     }
 
-    public void testRandom() throws Exception {
+    public void testRandom() {
         int j = 0;
         Map<String, Object> doc = new HashMap<>();
         String[] fieldMappers = new String[(allowedFields.size() + disAllowedFields.size()) * 2];
@@ -141,7 +141,7 @@ public class FieldLevelSecurityRandomTests extends SecurityIntegTestCase {
             doc.put(field, "value");
         }
         assertAcked(client().admin().indices().prepareCreate("test")
-                        .setMapping((Object[])fieldMappers)
+                        .setMapping(fieldMappers)
         );
         client().prepareIndex("test").setId("1").setSource(doc).setRefreshPolicy(IMMEDIATE).get();
 

+ 1 - 1
x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/index/query/ShapeQueryBuilderTests.java

@@ -67,7 +67,7 @@ public class ShapeQueryBuilderTests extends AbstractQueryTestCase<ShapeQueryBuil
 
     @Override
     protected void initializeAdditionalMappings(MapperService mapperService) throws IOException {
-        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.buildFromSimplifiedDef(docType,
+        mapperService.merge(docType, new CompressedXContent(Strings.toString(PutMappingRequest.simpleMapping(
             fieldName(), "type=shape"))), MapperService.MergeReason.MAPPING_UPDATE);
     }