ElasticSearch (三)ElasticSearch 常見REST API 操作

###一、前言
ElasticSearch 提供了一套非常強大並且易操作的 REST API 用於我們開發人員進行操作。主要 REST API 能完成以下幾項功能:

  • 管理功能

    • i:檢查集羣、節點、索引的狀態以及相關的統計數據

    • ii:管理集羣、節點、索引數據以及源數據

  • 維護索引

  • i:基本操作。
    提供針對索引的CRUD操作(Create【PUT】, Read【GET】, Update【POST】, and Delete【POST】)

  • ii:高級操作
    以及其他如分頁、排序、過濾等高級操作
    ###二、集羣管理
    ####1.查看集羣狀態
    GET /_cat/health?v
    返回值

這裏寫圖片描述

從以上的返回值中,我們可以得到一個名爲ElasticSearch的集羣,共有一個節點,沒有索引數據。
ps:Epoch :時間戳 long 類型的

####2.查看所有節點狀態
GET /_cat/nodes?v
###三、常見 CRUD 操作
####1.新建索引
PUT /hiup?pretty
返回值

{
	  "acknowledged": true,
	  "shards_acknowledged": true
}
pretty參數:用來格式化返回值。類似於mysql\G 來格式化輸出一樣的作用。需要注意的是這個需要的操作是PUT 操作。

####2.查看所有索引
GET /_cat/indices?v
這時候再使用這個命令,我們就能查看到所有索引數據。

這裏寫圖片描述

從以上的返回值中,我們可以看見已經創建一個名爲 hiup 尚未分配的索引。

####3.創建文檔

curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"fu"}'

創建文檔

從以上的返回值,我們可以得到成功創建了一個hiup索引,類型爲user,id爲 2 。
需要聲明的是,當你創建一個文檔時,無需再這之前創建一個索引和類型,ElasticSearch會自動根據你的創建信息自動創建相應的索引、類型,直至文檔。

####4.查看文檔

 curl -XGET 'localhost:9200/hiup/user/1?pretty'

####5.刪除文檔

curl -XDELETE 'localhost:9200/hiup/user/1?pretty'

刪除文檔

從返回值,我們可以發現通過操作我們已經刪除了hiup索引中類型爲user,id爲1的文檔。

####6.修改文檔

1.curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"xiaoming"}'

這裏寫圖片描述

從返回結構來看,我們可以發現修改了一個huip索引類型爲user的文檔。

2.curl -XPOST 'localhost:9200/hiup/user/2/_update?pretty&pretty' -d'
	{
	  "doc": { "name": "xiaohong" }
	}'

這裏寫圖片描述

從返回結果來說,這兩個操作時一樣的。有所不同的是,上一個操作爲替換操作,這個爲更新操作。

####7.批量新增文檔

curl -XPOST 'localhost:9200/hiup/user/_bulk?pretty&pretty' -d
	'{"index":{"_id":"1"}}
	{"name": "zhaowu" }
	{"index":{"_id":"2"}}
	{"name": "wangwu" }'

這裏寫圖片描述

####8.分頁查詢

curl -XGET 'localhost:9200/hiup/user/_search?pretty' -d'
	{
	  "query": { "match_all": {} },
	  "from": 1,
	  "size": 1
	}'

這裏寫圖片描述

  • query:匹配所有
  • from:開始讀取索引,從第十條開始讀取
  • size:讀取條數,相當於pagesize

###9.過濾查詢

$ curl -XGET 'localhost:9200/hiup/_search?pretty' -d'
	{
	  "query": {
	    "bool": {
	      "must": { "match_all": {} },
	      "filter": {
	        "range": {
	          "age": {
	            "gte": 0,
	            "lte": 1
	          }
	        }
	      }
	    }
	  }
	}'

查詢hiup索引過濾age 大於等於0 小於等於1

這裏寫圖片描述

###四、總結

ElasticSearch 是一個很強大 並且很友好的全文檢索框架,本文僅僅介紹了針對集羣的非常簡單的 Restful 形式的 API 操作。這個僅僅是我們學習ElasticSearch的基礎,相信本文過後也會激發我們繼續深入ElasticSearch的腳步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章