Kibana 基本操作


es中的索引對應mysql的數據庫、類型對應mysql的表、文檔對應mysql的記錄、映射對應mysql的索引
索引:index
類型:type
映射:mappings

1、創建索引
在kibana的Dev Tools中輸入如下

 
PUT  / lib /
{
     "settings" :{
         "index" :{
             "number_of_shards" : 3 ,
             "number_of_replicas" : 0
         }
     }
}

索引的名稱為lib
number_of_shards:分片的數量為3,分片的數量一旦確定了就不能修改
number_of_replicas: 備份的數量為1,由於就1台服務器因此備份數量為0

創建成果后在右邊顯示如下

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

直接創建一個索引,會使用默認配置
PUT lib2

查看已經創建好的索引的配置
GET /lib/_settings
GET /lib2/_settings

查看所有索引的配置
GET _all/_settings

2、在索引下添加文檔
# user 是類型
# 1 是文檔的id

 
PUT  / lib / user / 1
{
     "first_name" "Jane" ,
     "last_name" "Smith" ,
     "age" 32 ,
     "about" "I like to collect rock albums" ,
     "interests" : [ "music" ]
}

右邊顯示結果如下

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

如果添加文檔時沒有指定id,那么這個id會由es自動生成,那么我們要使用POST方式添加文檔

 
POST  / lib / user /
{
     "first_name" "Douglas" ,
     "last_name" "Fir" ,
     "age" 23 ,
     "about" "I like to build cabinets" ,
     "interests" : [ "forestry" ]
}

結果如下

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

3、查詢文檔
# 根據文檔id進行查詢
GET /lib/user/1
結果如下

 
{
   "_index" "lib" ,
   "_type" "user" ,
   "_id" "1" ,
   "_version" 1 ,
   "found" : true,
   "_source" : {
     "first_name" "Jane" ,
     "last_name" "Smith" ,
     "age" 32 ,
     "about" "I like to collect rock albums" ,
     "interests" : [
       "music"
     ]
   }
}

GET /lib/user/3z0vM2kBpR5Gle8qjwsu

# 查看文檔的部分信息
GET /lib/user/1?_source=age,about
結果如下

 
{
   "_index" "lib" ,
   "_type" "user" ,
   "_id" "1" ,
   "_version" 1 ,
   "found" : true,
   "_source" : {
     "about" "I like to collect rock albums" ,
     "age" 32
   }
}

4、修改文檔
# 使用一個新的文檔覆蓋之前的文檔,會覆蓋文檔所有字段的值

 
PUT  / lib / user / 1
{
     "first_name" "Jane" ,
     "last_name" "Smith" ,
     "age" 36 ,
     "about" "I like to collect rock albums" ,
     "interests" : [ "music" ]
}

結果如下,會提示結果為updated

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

# 修改文檔中的指定字段的值

 
POST  / lib / user / 1 / _update
{
     "doc" :{
         "age" : 33
     }
}

結果如下

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

5、刪除文檔
DELETE /lib/user/1
結果如下

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

6、刪除一個索引
DELETE lib2
結果如下
{
“acknowledged”: true
}

 

7、put和post比較

PUT是冪等方法,而POST並不是。

PUT用於更新操作,POST用於新增操作比較合適。

PUT,DELETE操作是冪等的,所謂冪等就是指不管進行多少次操作,結果都一樣。比如,我用PUT修改一篇文章,然后在做同樣的操作,每次操作后的結果並沒有不同,DELETE也是一樣。

POST操作不是冪等,比如常見的POST重復加載問題:當我們多次發出同樣的POST請求后,其結果是創建出了若干的資源。

還有一點需要注意的是,創建操作可以使用POST,也可以使用PUT。區別在於POST是作用在一個集合資源之上的(/articles),而PUT操作是作用在一個具體資源之上的(/articles/123),比如說很多資源使用數據庫自增主鍵作為標識信息,而創建的資源的標識信息到底是什么只能由服務端提供,這個時候就必須使用POST。


免責聲明!

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



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