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: