From 8c16840fd78b0e25a6e735728b8bed2c1fb8c4a8 Mon Sep 17 00:00:00 2001 From: kimchy Date: Sun, 21 Feb 2010 23:37:48 +0200 Subject: [PATCH] bring back boost mapping support when building mapping source --- .../index/mapper/json/JsonBoostFieldMapper.java | 7 ++++++- .../index/mapper/json/JsonObjectMapper.java | 13 ++++++++++++- .../mapper/json/simple/SimpleJsonMapperTests.java | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonBoostFieldMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonBoostFieldMapper.java index e74d207ac40..41ca52d9d35 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonBoostFieldMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonBoostFieldMapper.java @@ -172,6 +172,11 @@ public class JsonBoostFieldMapper extends JsonNumberFieldMapper implement } @Override public void toJson(JsonBuilder builder, Params params) throws IOException { - // for now, don't output it at all + builder.startObject(jsonType()); + builder.field("name", name()); + if (nullValue != null) { + builder.field("nullValue", nullValue); + } + builder.endObject(); } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonObjectMapper.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonObjectMapper.java index cf56128ddf5..f775580ffe7 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonObjectMapper.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/mapper/json/JsonObjectMapper.java @@ -380,6 +380,7 @@ public class JsonObjectMapper implements JsonMapper { builder.field("dynamic", dynamic); builder.field("enabled", enabled); builder.field("pathType", pathType.name().toLowerCase()); + if (dateTimeFormatters.length > 0) { builder.startArray("dateFormats"); for (FormatDateTimeFormatter dateTimeFormatter : dateTimeFormatters) { @@ -387,10 +388,20 @@ public class JsonObjectMapper implements JsonMapper { } builder.endArray(); } + + // check internal mappers first (this is only relevant for root object) + for (JsonMapper mapper : mappers.values()) { + if (mapper instanceof InternalMapper) { + mapper.toJson(builder, params); + } + } + if (!mappers.isEmpty()) { builder.startObject("properties"); for (JsonMapper mapper : mappers.values()) { - mapper.toJson(builder, params); + if (!(mapper instanceof InternalMapper)) { + mapper.toJson(builder, params); + } } builder.endObject(); } diff --git a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/json/simple/SimpleJsonMapperTests.java b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/json/simple/SimpleJsonMapperTests.java index 3062435a042..0c53505f92b 100644 --- a/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/json/simple/SimpleJsonMapperTests.java +++ b/modules/elasticsearch/src/test/java/org/elasticsearch/index/mapper/json/simple/SimpleJsonMapperTests.java @@ -62,7 +62,7 @@ public class SimpleJsonMapperTests { String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/json/simple/test-mapping.json"); JsonDocumentMapper docMapper = (JsonDocumentMapper) new JsonDocumentMapperParser(new AnalysisService(new Index("test"))).parse(mapping); String builtMapping = docMapper.buildSource(); - System.out.println(builtMapping); +// System.out.println(builtMapping); // reparse it JsonDocumentMapper builtDocMapper = (JsonDocumentMapper) new JsonDocumentMapperParser(new AnalysisService(new Index("test"))).parse(builtMapping); String json = copyToStringFromClasspath("/org/elasticsearch/index/mapper/json/simple/test1.json");