Quick short, Elasticsearch cheat API End-Point calls that takes a while to remember. If I have missed your favourite or want to make a recommendation to add in please do leave comment
States
# Show all indices GET /_cat/indices?v- # cluster health state GET /_cluster/health # Show all nodes GET /_cat/nodes? # Show largest Index. Leverages the _CAT api curl 'localhost:9200/_cat/indices?bytes=b' | sort -rnk8 | grep -v marvel,kibana
Index
Indexing
# Bulk Indexing Example POST /factory/_bulk {"index":{"_index":"factory", "_type":"cars"}} { "model":"swift","make":"suzuki", "mark":1, "release_year":"1998-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"swift","make":"suzuki", "mark":2, "release_year":"2003-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"baleno","make":"suzuki", "mark":1, "release_year":"2000-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"focus","make":"ford","mark":1, "release_year":"2001-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"focus","make":"ford","mark":2, "release_year":"2007-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"rs","make":"ford","mark":2, "release_year":"2011-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"rav4","make":"toyota","mark":3, "release_year":"2009-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"mondeo","make":"ford","mark":2, "release_year":"2007-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"st","make":"ford","mark":1, "release_year":"2007-01-01"} {"index":{"_index":"factory", "_type":"cars"}} { "model":"5 series","make":"bmw","mark":3, "release_year":"2009-01-01"}
Index Management
PUT /my_index/_settings { "index": { "number_of_replicas": 4 } } # Add a single alias PUT /lmg_sem_v4/_alias/lmg # Move Shard to another node POST /_cluster/reroute { "commands" : [ { "move" : { "index" : "amg_sem_v12", "shard" : 0, "from_node" : "UK-SEARCH-STG-02", "to_node" : "UK-SEARCH-STG-01" } } ] }
Index Cloning
From ElasticSearch 2.3 you you may now use the built in _reindex
API to re-index data
POST /_reindex { "source": { "index": "my-index" }, "dest": { "index": "my-new-index" } }
Cloning with a filter/query
POST /_reindex { "source": { "index": "my-index", "query": { "term": { "has-index-cloning-with-filter-on": true } } }, "dest": { "index": "my-new-index" } }
SnapShot and Recovery
For latest see
# Show cluster-wide Recovery state GET /_recovery?pretty&human GET /_recovery?pretty&human&active_only=true # show tabular cluster-wide status summary GET /_cat/recovery?v # Show me all snapshots GET /_snapshot/_all # Show settings details of snapshot repo "my_backup" GET /_snapshot/my_backup # Show all snapshot details of repo "my_backup" GET /_snapshot/my_backup/_all # Delete snapshot "snapshot_2015_09_07-13_50_48" from repo "prod-0009" DELETE /_snapshot/prod-0009/snapshot_2015_09_07-13_50_48/ # Register Repo + no need to verify permission on path location PUT /_snapshot/prod-0009?verify=false { "type": "fs", "settings": { "location": "/vagrant/prod-0009", "compress": true, "max_snapshot_bytes_per_sec": "200000000", "max_restore_bytes_per_sec": " 500mb" } } # Take Snapshot of just "cmg_sem_v6" index PUT /_snapshot/one-off-repo?wait_for_completion=true { "indices": "cmg_sem_v6", "ignore_unavailable": "true", "include_global_state": false } # Restore Snapshots of all index + global state POST /_snapshot/prod-0009/snapshot_2015_09_11-10_23_29/_restore # Restore Snapshots of only "log_river" index POST /_snapshot/prod-0009/snapshot_2015_09_11-10_23_29/_restore { "indices": "log_river", "rename_pattern": "index_pattern", "rename_replacement": "restored_pattern" "ignore_unavailable": "true", "include_global_state": false } # Speed up Recovery Speed PUT /_cluster/settings { "persistent": { "cluster.routing.allocation.node_concurrent_recoveries": "5", "indices.recovery.max_bytes_per_sec": "200mb", "indices.recovery.concurrent_streams": 5 } }
Having trouble With .Marvel* index creation?
# You can view the current settings template with : curl -XGET localhost:9200/_template/marvel # Modify settings with: PUT /_template/marvel_custom { "order" : 1, "template" : ".marvel*", "settings" : { "number_of_replicas" : 0, "number_of_shards" : 5 } }
More here
Move/Route shards to another elasticsearch node
POST /_cluster/reroute { "commands" : [ { "move" : { "index" : "amg_sem_v12", "shard" : 0, "from_node" : "UK-SEARCH-STG-02", "to_node" : "UK-SEARCH-STG-01" } } ] }
See more API Re-Route explained Blog