Создание сопоставлений с использованием класса ES Document.Builder в JEST

Я пытаюсь создать сопоставления для своего индекса в JEST, используя класс Document.Builder из ElasticSearch. Я следовал примеру, указанному ниже в файле readme для JEST, но, похоже, он не работает.

RootObjectMapper.Builder rootObjectMapperBuilder = new RootObjectMapper.Builder("my_mapping_name").add(
    new StringFieldMapper.Builder("message").store(true));    

DocumentMapper documentMapper = new DocumentMapper.Builder("my_index", null, rootObjectMapperBuilder).build(null);
String expectedMappingSource = documentMapper.mappingSource().toString();
PutMapping putMapping = new PutMapping.Builder(
    "my_index",
    "my_type",
    expectedMappingSource).build();

client.execute(putMapping);

Для версии ES, которую я использую (v2.3.0), класс DocumentMapper.Builder, похоже, не содержит те же указанные параметры в конструкторе Builder, которые были указаны в примере. Может ли кто-нибудь указать мне на обновление, если оно существует?


person enwafor    schedule 30.06.2016    source источник


Ответы (1)


Конструктор DocumentMapper.Builder изменился для ElasticSearch версии 2.3.0, новый конструктор выглядит так:

public Builder(RootObjectMapper.Builder builder, MapperService mapperService)

Таким образом, вы можете использовать этот новый конструктор или использовать конструктор строк JSON с чем-то вроде примера:

PutMapping putMapping = new PutMapping.Builder( "my_index", "my_type", "{ \"document\" : { \"properties\" : { \"message\" : {\"type\" : \"string\", \"store\" : \"yes\"} } } }" ).build();

person Carlos Saltos    schedule 22.09.2016