Indices Administrationedit
To access indices Java API, you need to call indices()
method from an AdminClient
:
IndicesAdminClient indicesAdminClient = client.admin().indices();
In the rest of this guide, we will use client.admin().indices()
.
Create Indexedit
Using an IndicesAdminClient
, you can create an index with all default settings and no mapping:
client.admin().indices().prepareCreate("twitter").get();
Index Settingsedit
Each index created can have specific settings associated with it.
Put Mappingedit
You can add mappings at index creation time:
client.admin().indices().prepareCreate("twitter") .addMapping("_doc", "message", "type=text") .get();
Creates an index called |
|
Add a |
There are several variants of the above addMapping
method, some taking an
XContentBuilder
or a Map
with the mapping definition as arguments. Make sure
to check the javadocs to pick the simplest one for your use case.
The PUT mapping API also allows for updating the mapping after index creation. In this case you can provide the mapping as a String similar to the REST API syntax:
client.admin().indices().preparePutMapping("twitter") .setType("_doc") .setSource("{\n" + " \"properties\": {\n" + " \"name\": {\n" + " \"type\": \"text\"\n" + " }\n" + " }\n" + "}", XContentType.JSON) .get(); // You can also provide the type in the source document client.admin().indices().preparePutMapping("twitter") .setType("_doc") .setSource("{\n" + " \"_doc\":{\n" + " \"properties\": {\n" + " \"name\": {\n" + " \"type\": \"text\"\n" + " }\n" + " }\n" + " }\n" + "}", XContentType.JSON) .get();
Refreshedit
The refresh API allows to explicitly refresh one or more index:
Get Settingsedit
The get settings API allows to retrieve settings of index/indices:
GetSettingsResponse response = client.admin().indices() .prepareGetSettings("company", "employee").get(); for (ObjectObjectCursor<String, Settings> cursor : response.getIndexToSettings()) { String index = cursor.key; Settings settings = cursor.value; Integer shards = settings.getAsInt("index.number_of_shards", null); Integer replicas = settings.getAsInt("index.number_of_replicas", null); }
Update Indices Settingsedit
You can change index settings by calling: