WARNING: Deprecated in 7.15.0.
The Java REST Client is deprecated in favor of the Java API Client.
Create Index API
editCreate Index API
editCreate Index Request
editA CreateIndexRequest requires an index argument:
Index settings
editEach index created can have specific settings associated with it.
Index mappings
editAn index may be created with mappings for its document types
request.mapping( "{\n" + " \"properties\": {\n" + " \"message\": {\n" + " \"type\": \"text\"\n" + " }\n" + " }\n" + "}", XContentType.JSON);
The mapping source can be provided in different ways in addition to the
String example shown above:
Map<String, Object> message = new HashMap<>();
message.put("type", "text");
Map<String, Object> properties = new HashMap<>();
properties.put("message", message);
Map<String, Object> mapping = new HashMap<>();
mapping.put("properties", properties);
request.mapping(mapping);
Index aliases
editAliases can be set at index creation time
Providing the whole source
editThe whole source including all of its sections (mappings, settings and aliases) can also be provided:
request.source("{\n" +
" \"settings\" : {\n" +
" \"number_of_shards\" : 1,\n" +
" \"number_of_replicas\" : 0\n" +
" },\n" +
" \"mappings\" : {\n" +
" \"properties\" : {\n" +
" \"message\" : { \"type\" : \"text\" }\n" +
" }\n" +
" },\n" +
" \"aliases\" : {\n" +
" \"twitter_alias\" : {}\n" +
" }\n" +
"}", XContentType.JSON);
Optional arguments
editThe following arguments can optionally be provided:
Synchronous execution
editWhen executing a CreateIndexRequest in the following manner, the client waits
for the CreateIndexResponse to be returned before continuing with code execution:
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
Synchronous calls may throw an IOException in case of either failing to
parse the REST response in the high-level REST client, the request times out
or similar cases where there is no response coming back from the server.
In cases where the server returns a 4xx or 5xx error code, the high-level
client tries to parse the response body error details instead and then throws
a generic ElasticsearchException and adds the original ResponseException as a
suppressed exception to it.
Asynchronous execution
editExecuting a CreateIndexRequest can also be done in an asynchronous fashion so that
the client can return directly. Users need to specify how the response or
potential failures will be handled by passing the request and a listener to the
asynchronous create-index method:
The asynchronous method does not block and returns immediately. Once it is
completed the ActionListener is called back using the onResponse method
if the execution successfully completed or using the onFailure method if
it failed. Failure scenarios and expected exceptions are the same as in the
synchronous execution case.
A typical listener for create-index looks like:
Create Index Response
editThe returned CreateIndexResponse allows to retrieve information about the executed
operation as follows: