0

我正在尝试使用 ElasticSearch 中的 Document.Builder 类在 JEST 中为我的 indext 创建映射。我已经按照 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 构造函数中相同的指定参数。如果有更新,有人可以指点我吗?

4

1 回答 1

0

ElasticSearch 2.3.0 版本的 DocumentMapper.Builder 构造函数已更改,新的构造函数如下:

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();

于 2016-09-22T10:48:06.420 回答