Elasticsearch is similar to other document-noSQL databases.


All documents in Elasticsearch contain the following metadata fields.

field description
_index Where the document lives
_type The type of object the document represents
_id A unique identifier for the document


Check cluster health

$ curl -H "Content-type:application/json" "<elasticsearch url>/_cluster/health" | python -m json.tool

Create a new document

$ curl -XPOST '<elasticsearch url>/<index>/<type>' -d '{ "<field>": "<value>" }'

Update an existing document

$ curl -XPUT '<elasticsearch url>/<index>/<type>/<uid>' -d '{ "<field>": "<value>" }'

Delete a document

$ curl -XDELETE '<elasticsearch url>/<index>/<type>/<uid>'

Check if document exists

$ curl -XHEAD '<elasticsearch url>/<index>/<type>/<uid>'



Indexes are used to group documents. This is provided purely for your convenience. Elasticsearch doesn’t enforce any conventions about how you use indexes.


You don’t need to create a unique index for all the data in your application. You can add extra granularity to the data in an index by specifying types. For instance, in the index Instance Health, you might create the types CPU,MEM, and Network.


All Elasticsearch data fields are mapped to a specific type.

Get mappings for index

$ curl -XGET <url>/<index>/_mapping

Get mapping for field

Fields can be a comma separated list to get multiple values.

$ curl -XGET <url>/<index>/_mapping/<type>/field/<fields>