初識elasticsearch中的REST接口

前面向讀者介紹了Elasticsearch的安裝和基本配置,同時也向讀者介紹了Elasticsearch中的核心概念,相信讀者對Elasticsearch的使用已經有了一個初步的瞭解,接下來,向讀者介紹Elasticsearch中的REST命令,這是Elasticsearch提供的一整套強大的REST命令,來實現對集羣的操做。接下來向讀者詳細介紹這個東西。 node

本文是Elasticsearch系列的第二篇,閱讀前面的文章,有助於更好的理解本文:json


1.elasticsearch安裝與配置瀏覽器


REST接口

當節點和集羣啓動後,下一步就是要考慮如何與節點和集羣進行通訊,幸運的是,Elasticsearch提供了一個很是全面和強大的REST API,開發者利用這個REST API,能夠實現與集羣之間的交互。這一套REST API主要提供了以下幾個功能:app

  • 檢查集羣、節點和索引的健康信息、狀態以及各類統計信息
  • 管理集羣、節點、索引數據以及元數據
  • 對索引進行 CRUD(建立、讀取、更新和刪除)和搜索操做
  • 執行高級的搜索操做, 例如分頁、排序、過濾、腳本編寫(scripting)、聚合(aggregations)以及其它操做

上面向讀者介紹了Elasticsearch提供的REST API所具備的基本功能,接下來,咱們就來看看這些基本功能具體如何操做。curl

集羣操做

因爲是REST API,讀者可使用POST MAN,RESTClient等工具完成下面的測試,也能夠直接使用curl命令來完成下面的測試。對於一些簡單的如GET請求,也能夠直接在瀏覽器中完成測試。

集羣健康信息

使用以下命令能夠查看集羣健康信息:elasticsearch

curl -X GET "localhost:9200/_cat/health?v"

查看結果以下: 工具

圖片描述

從這個響應中,咱們能夠看到集羣的名稱,狀態,節點數,分片數等等,其中:學習

  1. 狀態有green、yellow和red三種,green表示目前集羣運行一切OK,集羣功能齊全;yellow表示集羣全部數據都是可用的,集羣功能也齊全,不過某些複製沒有被分配;red則表示集羣的部分數據不可用,集羣的功能也是不全的,可是集羣仍是能夠運行的,它能夠繼續處理搜索請求,不過開發者要儘快修復它。
  2. 另外從響應結果中,咱們能夠看到一共有一個節點,一個分片等信息。
  3. 由於我以前已經安裝了Kibana,因此這裏的信息實際上反應了Kibana的部分信息,讀者若是沒有安裝Kibana,這裏的響應結果和個人可能有差別,不過參數含義都是一致的,關於Kibana,咱們在後文會向讀者介紹。

經過以下請求能夠查看節點的詳細信息:測試

curl -X GET "localhost:9200/_cat/nodes?v"

請求結果以下: url

圖片描述

能夠看到,咱們的節點名爲iFO7DC9

查看全部索引

經過以下命令能夠查看全部索引:

curl -X GET "localhost:9200/_cat/indices?v"

請求結果以下:

圖片描述

從圖中能夠看到集羣中索引的信息。

建立一個索引

接下來,經過以下命令,咱們能夠建立一個名爲customer的索引,並從新列出全部索引:

curl -X PUT "localhost:9200/customer?pretty"
curl -X GET "localhost:9200/_cat/indices?v"

執行結果以下:

圖片描述

請求命令解釋:

  1. 第一個,經過一個PUT請求,添加了一個名爲customer的索引,末尾加上pretty參數,表示請求響應的JSON格式化以後打印出來,方便開發者閱讀。這是一個通用的參數,當須要格式化響應JSON時,均可以使用這個參數。
  2. 第二個請求表示查看全部的索引,其中就有咱們剛剛建立的索引customer,該索引有5個分片1個複製,沒有文檔,可是注意該索引的status爲yellow,根據前文的介紹,黃色表示某些複製沒有被分配。這是由於elasticsearch默認爲索引建立一份複製,而如今只有一個節點在運行,所以複製就分配不了了,當另一個節點加入到這個集羣后才能分配,分配成功後,這個節點的健康狀態就會變成綠色。

查詢文檔

經過以下請求能夠添加一個文檔:

curl -X PUT "localhost:9200/customer/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}'

這個請求表示在customer中的_doc類型中添加一個文檔,文檔id爲1,該命令執行結果以下:

圖片描述

小貼士:

Elasticsearch中,並不強制要求顯式的建立索引,即前面案例中,若是開發者在添加文檔以前,尚未建立customer索引,那麼該文檔同樣也會建立成功的(此時索引會被自動建立)。

經過以下命令能夠獲取一個文檔,最後面的1表示獲取id爲1的文檔:

curl -X GET "localhost:9200/customer/_doc/1?pretty"

圖片描述

刪除索引

經過以下命令能夠刪除一個索引:

curl -X DELETE "localhost:9200/customer?pretty"
curl -X GET "localhost:9200/_cat/indices?v"

DELETE請求能夠用來刪除一個索引,該命令執行結果以下:

圖片描述

能夠看到,customer索引已經被成功刪除了。

小結

這裏向讀者介紹的索引操做都是很常規,很簡單的操做,後面會向讀者介紹複雜的索引操做。
另外,讀者總結上面的REST API格式,能夠發現,API格式爲:

curl -X <HTTP Verb> /<Index>/<Type>/<ID>

事實上,這個格式適用於全部的API,若是能記住它,對咱們後面的學習會有很大的幫助。

好了,本文就先介紹到這裏,有問題歡迎留言討論。

圖片描述

相關文章
相關標籤/搜索