Способ создания маппинга, который я использую сейчас:
XContentBuilder mappingBuilder = XContentFactory.jsonBuilder()
.startObject().startObject("tweet").startObject("properties")
.startObject("id")
.field("type", "long")
.endObject()
.startObject("text")
.field("type", "string")
.field("term_vector", "with_positions_offsets_payloads")
.endObject()
.endObject().endObject().endObject();
client.admin().indices().preparePutMapping("twitter")
.setType("tweet")
.setSource(mappingBuilder)
.get();
Способ, которым хотелось бы пользоваться:
RootObjectMapper.Builder mappingBuilder = MapperBuilders.rootObject("tweet")
.add(MapperBuilders.longField("id"))
.add(MapperBuilders.stringField("text")
.storeTermVectorOffsets(true)
.storeTermVectorPayloads(true)
.storeTermVectorPositions(true));
client.admin().indices().preparePutMapping("twitter")
.setType("tweet")
.setSource(mappingBuilder)
.get();
Вопрос: как это сделать? Метод setSource() не принимает данных этого типа. Других похожих методов тоже нет.