这是执行相同操作的解决方案。首先使用映射器创建索引并插入数据
public String createEventdocument(Event document) throws Exception { GetIndexRequest request = new GetIndexRequest(); request.indices(INDEX); boolean exists = client.indices().exists(request, RequestOptions.DEFAULT); if(!exists){ createIndexWithMapping(); } IndexRequest indexRequest = new IndexRequest(INDEX, TYPE, document.idAsString()) .source(convertEventdocumentToMap(document)); //create mapping with a complete field IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); return indexResponse.getResult().name();}private boolean createIndexWithMapping() throws IOException { CreateIndexRequest createIndexRequest = new CreateIndexRequest(INDEX); XContentBuilder builder = XContentFactory.jsonBuilder(); builder.startObject(); { builder.startObject( "properties" ); { builder.startObject( "name_suggest" ); { builder.field( "type", "completion" ); } builder.endObject(); } builder.endObject(); } builder.endObject(); createIndexRequest.mapping(TYPE,builder); createIndexRequest.timeout(Timevalue.timevalueMinutes(2)); CreateIndexResponse createIndexResponse = client.indices().create(createIndexRequest, RequestOptions.DEFAULT); return createIndexResponse.isAcknowledged();}

![在Java REST Client [6.5] API上的ES 6.5中通过映射创建索引 在Java REST Client [6.5] API上的ES 6.5中通过映射创建索引](http://www.mshxw.com/aiimages/31/368191.png)
