The command syntax will be of the following type:
<REST Verb> /<Index>/<Type>/<ID>
Execute the following command to explore elasticsearch cluster through Kibana Console.
GET /_cat/health?v
GET /_cat/indices?v
PUT /car?pretty
PUT /car/external/1?pretty
{
"name": "Tata Nexon"
}
the response of above query will be :
{
"_index": "car",
"_type": "external",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"created": true
}
GET /car/external/1?pretty
DELETE /car?pretty
Elasticsearch provides data manipulation & data searching capabilities in almost real time. under this example, we have update, delete & batch processing operations.
PUT /car/external/1?pretty
{
"name": "Tata Nexa"
}
previous car document at id 1 with name "Tata Nexon" will be updated with new name "Tata Nexa"
POST /car/external?pretty
{
"name": "Jane Doe"
}
for indexing the document without an Id we use POST verb instead of PUT verb. if we don't provide an Id, elasticsearch will generate a random ID and then use it to index the document.
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nex" }
}
POST /car/external/1/_update?pretty
{
"doc": { "name": "Tata Nexon", "price": 1000000 }
}
POST /car/external/1/_update?pretty
{
"script" : "ctx._source.price += 50000"
}
ctx._source refers to the current source document that is about to be updated. Above script provides only one script to be updated at the same time.
DELETE /car/external/1?pretty
Note: deleting a whole index is more efficient than deleting all documents by using Delete by Query API
Batch Processing
Apart from indexing updating & deleting the document, elasticsearch also provides provides the ability to perform any of the above operations in batches using the _bulk API.
POST /car/external/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "Tata Nexon" }
{"index":{"_id":"2"}}
{"name": "Tata Nano" }
POST /car/external/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "Tata Nano" } }
{"delete":{"_id":"2"}}
If an operation fails, bulk API doesn't stop. It executes all the operations & finally returns report for all the operations.