ElasticSearch documentation is exhaustive, but the way it’s structured has some room for improvement. This post is meant as a cheat-sheet entry point into ElasticSearch APIs.<!--more-→
| Category | Description | Call examples | |
|---|---|---|---|
Single Document API |
PUT /my_index/my_type/1
{
"my_field" : "my_value"
}
POST /my_index/my_type
{
...
}
PUT /my_index/my_type/1/_create
{
...
} |
||
GET /my_index/my_type/0 |
|||
DELETE /my_index/my_type/0 |
|||
PUT /my_index/my_type/1
{
...
} |
|||
Multi-Document API |
GET /_mget
{
"docs" : [
{
"_index" : "my_index",
"_type" : "my_type",
"_id" : "1"
}
]
}
GET /my_index/_mget
{
"docs" : [
{
"_type" : "my_type",
"_id" : "1"
}
]
}
GET /my_index/my_type/_mget
{
"docs" : [
{
"_id" : "1"
}
]
} |
||
POST /my_index/_delete_by_query
{
"query": {
"match": {
...
}
}
} |
|||
POST /my_index/_update_by_query?conflicts=proceed
POST /my_index/_update_by_query?conflicts=proceed
{
"query": {
"term": {
"my_field": "my_value"
}
}
}
POST /my_index1,my_index2/my_type1,my_type2/_update_by_query |
|||
POST /_reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
} |
|||
URI Search |
GET /my_index/my_type/_search?q=my_field:my_value
GET /my_index/my_type/_search
{
"query" : {
"term" : { "my_field" : "my_value" }
}
} |
||
Search Shards API |
GET /my_index/_search_shards |
||
Count API |
GET /my_index/my_type/_count?q=my_field:my_value
GET /my_index/my_type/_count
{
"query" : {
"term" : { "my_field" : "my_value" }
}
} |
||
Validate API |
GET /my_index/my_type/_validate?q=my_field:my_value
GET /my_index/my_type/_validate
{
"query" : {
"term" : { "my_field" : "my_value" }
}
} |
||
Explain API |
GET /my_index/my_type/0/_explain
{
"query" : {
"match" : { "message" : "elasticsearch" }
}
}
GET /my_index/my_type/0/_explain?q=message:elasticsearch |
||
Profile API |
Provides timing information on individual components during a search |
GET /_search
{
"profile": true,
"query" : {
...
}
} |
|
Field Stats API |
Finds statistical properties of fields without executing a search |
GET /_field_stats?fields=my_field GET /my_index/_field_stats?fields=my_field GET /my_index1,my_index2/_field_stats?fields=my_field |
|
PUT /my_index
{
"settings" : {
...
}
} |
|||
DELETE /my_index DELETE /my_index1,my_index2 DELETE /my_index* DELETE /_all |
|||
GET /my_index GET /my_index* GET my_index/_settings,_mappings |
|||
HEAD /my_index |
|||
POST /my_index/_close POST /my_index/_open |
|||
POST /my_index/_rollover
{
"conditions": {
...
}
} |
|||
PUT /my_index/_mapping/new_type
{
"properties": {
"my_field": {
"type": "text"
}
}
} |
|||
GET /my_index/_mapping/my_type/field/my_field GET /my_index1,my_index2/_mapping/my_type/field/my_field GET /_all/_mapping/my_type1,my_type2/field/my_field1,my_field2 GET /_all/_mapping/my_type1*/field/my_field* |
|||
HEAD /my_index/_mapping/my_type |
|||
POST /_aliases
{
"actions" : [
{ "add" :
{ "index" : "my_index", "alias" : "my_alias" }
}
]
}
POST /_aliases
{
"actions" : [
{ "add" :
{ "index" : ["index1", "index2"] , "alias" : "another_alias" }
}
]
} |
|||
POST /_aliases
{
"actions" : [
{ "remove" :
{ "index" : "my_index", "alias" : "my_old_alias" }
}
]
} |
|||
PUT /my_index/_settings
{
...
} |
|||
GET /my_index/_settings |
|||
Performs an analysis process of a text and return the tokens |
GET /_analyze
{
"analyzer" : "standard",
"text" : "this is a test"
} |
||
PUT /_template/my_template
{
...
} |
|||
DELETE /_template/my_template |
|||
GET /_template/my_template |
|||
HEAD /_template/my_template |
|||
Replica configuration |
|||
GET /_stats GET /my_index1/_stats GET /my_index1,my_index2/_stats GET /my_index1/_stats/flush,merge |
|||
GET /_segments GET /my_index1/_segments GET /my_index1,my_index2/_segments |
|||
GET /_recovery GET /my_index1/_recovery GET /my_index1,my_index2/_recovery |
|||
GET /_shard_stores GET /my_index1/_shard_stores GET /my_index1,my_index2/_shard_stores |
|||
POST /_cache/clear POST /my_index/_cache/clear POST /my_index1,my_index2/_cache/clear |
|||
POST /_refresh POST /my_index/_refresh POST /my_index1,my_index2/_refresh |
|||
POST /_flush POST /my_index/_flush POST /my_index1,my_index2/_flush |
|||
POST /_forcemerge?max_num_segments=1 POST /my_index/_forcemerge?max_num_segments=1 POST /my_index1,my_index2/_forcemerge?max_num_segments=1 |
|||
cat aliases |
Shows information about aliases, including filter and routing infos |
GET /_cat/aliases?v GET /_cat/aliases/my_alias?v |
|
cat allocations |
Provides a snapshot on how many shards are allocated and how much disk space is used for each node |
GET /_cat/allocation?v |
|
cat count |
GET /_cat/count?v GET /_cat/count/my_index?v |
||
cat fielddata |
GET /_cat/fielddata?v GET /_cat/fielddata/my_field1,my_field2?v |
||
cat health |
One-line representation of the same information from |
GET /_cat/health?v GET /_cat/health?v&ts=0 |
|
cat indices |
GET /_cat/indices?v GET /_cat/indices?v&s=index GET /_cat/indices?v&health=yellow GET /_cat/indices/my_index*?v&health=yellow |
||
cat master |
Displays the master’s node ID, bound IP address, and node name |
GET /_cat/master?v |
|
cat nodeattrs |
GET /_cat/nodeattrs?v GET /_cat/nodeattrs?v&h=name,id,pid,ip |
||
cat nodes |
GET /_cat/nodes?v GET /_cat/nodes?v&h=name,id,pid,ip |
||
cat pending tasks |
Provides the same information as |
GET /_cat/pending_tasks?v |
|
cat plugins |
GET /_cat/plugins?v GET /_cat/plugins?v&h=name,id,pid,ip |
||
cat recovery |
GET /_cat/recovery?v GET /_cat/recovery?v&h=name,id,pid,ip |
||
cat repositories |
GET /_cat/repositories?v |
||
cat thread pool |
GET /_cat/thread_pool?v GET /_cat/thread_pool?v&h=id,pid,ip |
||
cat shards |
GET /_cat/shards?v GET /_cat/shards/my_index?v GET /_cat/shards/my_ind*?v |
||
cat segments |
Provides information similar to |
GET /_cat/segments?v GET /_cat/segments/my_index?v GET /_cat/segments/my_index1,my_index2?v |
|
cat snapshots |
/_cat/snapshots/my_repo?v |
||
cat templates |
GET /_cat/templates?v GET /_cat/templates/my_template GET /_cat/templates/my_template* |
||
Cluster Health |
GET /_cluster/health GET /_cluster/health?wait_for_status=yellow&timeout=50s GET /_cluster/health/my_index1 GET /_cluster/health/my_index1,my_index2 |
||
Cluster State |
GET /_cluster/state GET /_cluster/state/version,nodes/my_index1 GET /_cluster/state/version,nodes/my_index1,my_index2 GET /_cluster/state/version,nodes/_all |
||
Cluster Stats |
GET /_cluster/stats GET /_cluster/stats?human&pretty |
||
Pending cluster tasks |
GET /_cluster/pending_tasks |
||
Cluster Reroute |
GET /_cluster/reroute {
...
} |
||
Cluster Update Settings |
GET /_cluster/settings
{
"persistent" : {
...
},
"transient" : {
...
}
} |
||
Node Stats |
GET /_nodes/stats GET /_nodes/my_node1,my_node2/stats GET /_nodes/127.0.0.1/stats GET /_nodes/stats/indices,os,process |
||
Node Info |
GET /_nodes GET /_nodes/my_node1,my_node2 GET /_nodes/_all/indices,os,process GET /_nodes/indices,os,process GET /_nodes/my_node1,my_node2/_all |
||
Task Management API |
Retrieve information about tasks currently executing on nodes in the cluster |
GET /_tasks GET /_tasks?nodes=my_node1,my_node2 GET /_tasks?nodes=my_node1,my_node2&actions=cluster:* |
|
Nodes Hot Threads |
GET /_nodes/hot_threads GET /_nodes/hot_threads/my_node GET /_nodes/my_node1,my_node2/hot_threads |
||
Cluster Allocation Explain API |
GET /_cluster/allocation/explain
GET /_cluster/allocation/explain
{
"index": "myindex",
"shard": 0,
"primary": false
} |
||
marks an experimental (respectively new) API that is subject to removal (resp. change) in future versions |
|||
| Last updated on Feb. 22th |