2016-06-30 2 views
0

Я пытаюсь создать сопоставления для моего indext в JEST с помощью класса Document.Builder из ElasticSearch. Я последовал примеру, указанному ниже в readme для JEST, но он, похоже, не работает.Создание сопоставлений с использованием ES Document.Builder Класс в 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, что было заявлено в примере. Может ли кто-нибудь указать мне обновление, если оно есть?

ответ

0

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

public Builder(RootObjectMapper.Builder builder, MapperService mapperService)

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

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