1. 程式人生 > >ElasticSearch常用操作命令彙總

ElasticSearch常用操作命令彙總

Elasticsearch中資訊很多,同時ES也有很多資訊檢視命令,可以幫助開發者快速查詢Elasticsearch的相關資訊。

_cat

$ curl localhost:9200/_cat
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}

verbose

每個命令都支援使用?v引數,來顯示詳細的資訊:

$ curl localhost:9200/_cat/master?v
id                     host      ip        node
yBet3cYzQbC68FRzLZDmFg 127.0.0.1 127.0.0.1 lihao

help

每個命令都支援使用help引數,來輸出可以顯示的列:

$ curl localhost:9200/_cat/master?help
id   |   | node id
host | h | host name
ip   |   | ip address
node | n | node name

CURL的操作 

 curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具,使用curl可以簡單實現常見的get/post請求。簡單的認為是可以在命令列下面訪問url的一個工具。在centos的預設庫裡面是有curl工具的,如果沒有請yum安裝即可。 
    curl 

-X 指定http的請求方法 有HEAD GET POST PUT DELETE 
-d 指定要傳輸的資料 
-H 指定http請求頭資訊 

通過curl 操作Elasticsearch常用命令

注意elasticseach-6.3 需要增加 : curl -H "Content-Type: application/json"

-XPOST http://node1:9200/twitter/doc/ -d '{"author" : "Doug Cutting"}'

 ES建立索引庫和索引時的注意點 
       1)索引庫名稱必須要全部小寫,不能以下劃線開頭,也不能包含逗號 
       2)如果沒有明確指定索引資料的ID,那麼es會自動生成一個隨機的ID,需要使用POST引數 

$ curl http://node1:9200/_cat/indices?v #indices 可以替換上文中的所有命令
#建立索引庫 bigdata_p
$ curl -XPUT http://master:9200/bigdata_p 
#POST和PUT都可以用於建立,二者之間的區別: 
#PUT是冪等方法,POST不是。所以PUT用於更新,POST用於新增比較合適。 
$ curl -XPOST http://localhost:9200/bigdata/product/ -d '{"author" : "Doug Cutting"}' 
$ curl -XPUT http://master:9200/bigdata_p/product/ -d '{"name":"hadoop", "author": "Doug Cutting", "c_version": "2.7.3"}' 
#查詢某一個索引庫中的資料
$ curl -XGET http://master:9200/bigdata_p/_search?pretty 
#如果要查詢多個欄位,使用","進行隔開。eg. 
$ curl -XGET http://master:9200/bigdata_p/product/1?_source=name,author&pretty
#獲取source所有資料 
$ curl -XGET http://master:9200/bigdata_p/product/1?_source&pretty 
#根據條件進行查詢 
$ curl -XGET http://master:9200/bigdata_p/product/_search?q=name:hbase,hive&pretty

ES更新

ES可以使用PUT或者POST對文件進行更新,如果指定ID的文件已經存在,則執行更新操作
    注意:執行更新操作的時候,ES首先將舊的文件標記為刪除狀態,然後新增新的文件,舊的文件不會立即消失,但是你也無法訪問,ES會繼續新增更多資料的時候在後臺清理已經標記為刪除狀態的文件。

區域性更新 
       可以新增新欄位或者更新已經存在欄位(必須使用POST) 

$ curl -XPOST http://master:9200/bigdata_p/product/2/_update -d '{"doc":{"c_version": "2.0.0", "publish_time": "2017-03-23"}}' 

刪除

#根據主鍵刪除
$ curl -XDELETE http://master:9200/bigdata_p/product/3/ 

檢視對映資訊

curl -XGET "http://127.0.0.1:9200/productindex/_mapping?pretty" 
{
  "productindex" : {
    "mappings" : { }
  }
}