ElasticSearch常用操作命令彙總
阿新 • • 發佈:2018-12-29
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"
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" : { }
}
}