史上最簡單的Elasticsearch教程-第三章:以JSON為資料互動格式的RESTful API
基於Http協議,以JSON為資料互動格式的Restful風格API
(提前宣告:文章由作者:張耀烽/CSDN主頁:https://blog.csdn.net/youbitch1/
結合自己生產中的使用經驗整理,最終形成簡單易懂的文章,寫作不易,轉載請註明)
(整個教程的ES版本以及Kibana版本都是基於5.6.8)
(文章參考:Elasticsearch權威指南(書籍),Elasticsearch官方文件JavaApi5.6.8,實際專案中的應用場景)
(幫到到您請點點關注,文章持續更新中!)
-
如何傳送restful請求?:如下是一條請求的示例
-
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
-
curl -X:不是必要的,可以忽略
-
VERB:HTTP的方法;GET POST PUT DELETE HEAD
-
PROTOCOL: http或者https的協議(如果你的環境是HTTPS時需要攜帶,HTTP時無需關注)
-
HOST: Elasticsearch叢集中的任何一個節點的主機名,如果是在本地的節點,那麼就叫 localhost
-
PORT: Elasticsearch HTTP服務所在的埠,預設為9200
-
PATH: API路徑(PATH包含多個元件,稍後會寫出來)
-
QUERY_STRING: 一些可選的查詢請求引數,比如?pretty 引數將使請求返回更加美觀 易讀的JSON資料
-
BODY: 一個JSON格式的請求主體(不是必須的,類似於請求的引數)
-
-
-
OK,上面這就是一條標準的restful請求,下面我直接舉個栗子吧,看的更直觀一些,一下就懂了
-
啟動ES和Kibana
-
進入Kibana的Dev Tools頁面
-
//比如我這裡一下計算叢集中的文件數量
curl -XGET 'http://localhost:9200/_count?pretty'-d' { "query": { "match_all": {} } } // {}這個部分的東西都是Body,說白了就是你要請求的引數,我這裡選擇的match_all所有 //其他的一一對應,就看的更直白了
-
當執行完之後, Elasticsearch返回一個類似 200 OK 的HTTP狀態碼和JSON格式的響應主體(除了HEAD請求)
-
上面的請求會得到如下的JSON格式的響應主體:
{
"count": 46302,
"_shards": {
"total": 236,
"successful": 236,
"skipped": 0,
"failed": 0
}
}
-
但是各位發現沒有,這樣寫也太麻煩了吧,本來Kibana就直接連線了我們的ES,那麼我們的IP和埠都是Kibana已知的
-
所以<PROTOCOL>://<HOST>:<PORT>這個部分的東西可以完全省略掉
-
簡寫後如下圖所示:
#下一章我會寫一個增刪改查的案例帶大家熟悉ES原生的SQL語句(你可以這麼理解,其實準確的說是基於HTTP的restful請求)