# Создание маппинга на Java

**URL:** <https://discuss.elastic.co/t/java/35437>\
**Category:** Вопросы на русском языке\
**Created:** [November 24, 2015, 10:48am UTC](https://discuss.elastic.co/t/java/35437 "2015-11-24T10:48:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![strikerdimabel](https://avatars.discourse-cdn.com/v4/letter/s/ecb155/32.png) [@strikerdimabel](https://discuss.elastic.co/u/strikerdimabel)\
**Post date:** [November 24, 2015, 10:48am UTC](https://discuss.elastic.co/t/java/35437/1 "2015-11-24T10:48:39Z")

</div>

Способ создания маппинга, который я использую сейчас:

```
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() не принимает данных этого типа. Других похожих методов тоже нет.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [November 24, 2015, 3:59pm UTC](https://discuss.elastic.co/t/java/35437/2 "2015-11-24T15:59:48Z")

</div>

> [@strikerdimabel](#):
>
> RootObjectMapper.Builder

Это билдер для внутреннего класса, который парсит записи. Его нельзя использовать для задания маппинга - он используется с другой стороны - когда уже созданный маппинг парситься во время создания парсера записей.

---

<div class="post-metadata">

**Author:** ![strikerdimabel](https://avatars.discourse-cdn.com/v4/letter/s/ecb155/32.png) [@strikerdimabel](https://discuss.elastic.co/u/strikerdimabel)\
**Post date:** [November 25, 2015, 8:25am UTC](https://discuss.elastic.co/t/java/35437/3 "2015-11-25T08:25:09Z")

</div>

Понял, напишу свою обёртку, спасибо.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:50pm UTC](https://discuss.elastic.co/t/java/35437/4 "2017-07-06T13:50:28Z")

</div>

Closed on July 6, 2017, 1:50pm UTC


