Es學習第三課, ElasticSearch基本的增刪改查


    前面兩課我們了解了ES的基本概念並且學會了安裝ES,這節課我們就來講講ES基本的增刪改查;ES主要對外界提供的是REST風格的API,我們通過客戶端操作ES本質上就是API的調用。在第一課我們就講了索引、類型和文檔的含義,它們分別對應MYSQL的數據庫、表和一行數據。所以,我們在講ES的API時,大家可以按照MYSQL的SQL語句對應做理解。

 ES Restful API GET、POST、PUT、DELETE、HEAD含義(這幾個是API的基本概念): 
1)GET:獲取請求對象的當前狀態。 
2)POST:改變對象的當前狀態。 
3)PUT:創建一個對象。 
4)DELETE:銷毀對象。 
5)HEAD:請求獲取對象的基礎信息。

下面我們就利用Kibana的圖形化界面,來展示下ES的基本API。

1、新建一個索引(類似mysql 新建數據庫)

 

PUT /lib/
{
  "settings":{
    "index": {
      "number_of_shards":3,
      "number_of_replicas":1
    }
  }
}
或者簡單點,使用默認的分片和復制,可以直接
PUT lib2
這樣也可以生成索引

執行成功后,會顯示如下:

{
"acknowledged": true,
"shards_acknowledged": true,
"index": "lib"
}

其中,lib表示索引名稱,PUT 參數里的number_of_shards表示分片數量,number_of_replicas表示復制備份數量。

2、查詢索引

GET /lib/_settings #查詢索引lib的設置,

GET _all/_settings #查詢所有的索引設置

3、添加文檔(類似MYSQL添加一條數據)

PUT /lib/user/1
{
  "name" : "kakatadage",
  "age"  :  33,
  "about": "I like football!",
  "interests" : ["girls","football"]
}
使用PUT添加,其中user表示類型(type),1代表這條數據的主鍵;如果id不填也可以,ES會自動生成一條主鍵,不過這時就不能用PUT了,需要使用POST添加

執行成功,結果如下:

{
  "_index": "lib",
  "_type": "user",
  "_id": "1",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}

4、查詢文檔

GET /lib/user/1   //查詢ID為1的數據

5、修改文檔

PUT /lib/user/1    //PUT方式進行修改,這種是把原來對應文檔覆蓋掉  
{
  "name" : "kakatadage", 
  "age"  :  30,
  "about": "I like money!",
  "interests" : ["music","money"]
}
POST /lib/user/1/_update  //POST方式修改的話,可以針對對應field來修改,比PUT要輕量
{ 
  "doc": {
    "age" :32
  }
}

6、刪除文檔或索引

DELETE lib/user/1  //刪除一個文檔
DELETE lib2 //刪除索引

 

好了,基本的增刪改查我們講完了,是不是和SQL很類似,很簡單?不過理解簡單,實際使用還是要有大量的操作實踐才行,而且實際生產環境中,都是各種復雜查詢,后面我們會專門用幾節課來講。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM