可以使用行命令 curl 通過9200端口與 Elasticsearch 的 RESTful API 進行通信。
Elasticsearch RESTful API規範
例如,計算集羣中文件的數量,我們就可以使用:
<1> <2> <3> <4>
curl -XGET 'http://localhost:9200/_count?pretty'
-d '
{ <5>
"query": {
"match_all": {}
}
}
詳細說明:
1.相應的 HTTP 請求方法 或者 變量 : GET, POST, PUT, HEAD 或者 DELETE。
2.集羣中任意一個節點的訪問協議、主機名以及端口。
3.請求的路徑。
4.任意一個查詢後再加上 ?pretty 就可以生成 更加美觀 的JSON反饋,以增強可讀性。
5.一個 JSON 編碼的請求主體(如果需要的話)。
Elasticsearch將會返回一個 HTTP 狀態碼類似於 '200 OK',以及一個 JSON 格式的主體(除了單純的 'HEAD' 請求),上面的請求會得到下方的 JSON 主體:
{
"count" : 0,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
}
}
在反饋中,我們並沒有看見 HTTP 的頭部信息,因爲我們沒有告知 curl 顯示這些內容。
如果你想看到頭部信息,可以在使用 curl 命令的時候再加上 -i 這個參數:
curl -i -XGET
'localhost:9200/'
從現在開始,本書裏所有涉及 curl 命令的部分我們都會進行簡寫,因爲主機、端口等信息都是相同的,縮減前的樣子:
curl -XGET
'localhost:9200/_count?pretty' -d '
{
"query": {
"match_all": {}
}
}'
我們將會簡寫成這樣:
GET /_count
{
"query": {
"match_all": {}
}
}