基於HTTP協議,以JSON為資料互動格式的RESTful API。

孤芳不自賞發表於2017-08-30

向Elasticsearch發出的請求的組成部分與其他普通的HTTP請求是一樣的:

curl -X<VERB> '<PROTOCOL>://<HOST>/<PORT>?<QUERY_STRING>' -d '<BODY>'

  • VERB                             HTTP方法:GET、POST、PUT、HEAD、DELETE
  • PROTOCOL                  http或者https協議(只有在Elasticsearch前面有https代理的時候可用)
  • HOST                             Elasticsearch叢集中的任何一個節點的主機名,如果是在本地的節點,那麼就叫localhost
  • PORT                             Elasticsearch HTTP服務所在的埠,預設為9200
  • QUERY_STRING         一些可選的查詢請求引數,例如?pretty引數將使請求返回更加美觀易讀的JSON資料。
  • BODY                             一個JSON格式的請求主體(如果請求需要的話)

舉例說明,為了計算叢集中的文件數量,我們可以這樣做:

        curl -XGET 'http://localhost:9200/_count?pretty' -d '

        {

             "query" : {

                      "match_all" : {}

             }

        }

        '

Elasticsearch返回一個類似 “200 OK”的HTTP狀態碼和JSON格式的響應主體(除了HEAD請求)。上面的請求會得到如下的JSON格式的響應主體:

{

  "count" : 0 ,

  "_shards" : {

         "total" : 5,

         "successful" : 5,

          "failed" : 0

   }

}


我們看不到HTTP頭是因為我們沒有讓curl顯示它們,如果要顯示,使用curl命令後跟-i引數:

curl -i -XGET 'localhost:9200'



相關文章