與ES的互動方式
與es的互動方式采用http的請求方式,請求的格式如下:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
- 是請求的方法,比如:GET、POST、DELETE、PUT等。
- 協定:http或者https。
- 主機位址。
- 端口
- API的路徑。比如檢視叢集狀态:
。/_cluster/stats
- 參數。比如:?pretty,列印出格式化以後的Json。
- 請求的内容。比如:添加索引時的資料。
建立索引
es建立索引的請求方式如下:
PUT /<index>
- 請求的方法用
PUT
- /後面直接跟索引的名稱即可。
- 索引的設定和字段都放在Body中。
比如我們建立一個名字叫
組織機構
的索引,這個索引隻有兩個字段,一個id,一個name。并且這個索引設定為2個分片,2個副本。
我們使用POSTMAN發送請求,如下:
http://192.168.73.130:9200/orgnization
請求的方法選擇
PUT
。然後在請求體(Body)中,寫上索引的字段名稱,索引的分片數和副本數,如下:
{
"settings":{
"number_of_shards":2,
"number_of_replicas":2
},
"mappings":{
"properties":{
"id":{
"type":"long"
},
"name":{
"type":"text"
}
}
}
}
我們觀察一下,請求體中分為兩個部分:
settings
和
mappings
。在
settings
中,我們設定了分片數和副本數。
-
:分片的數量;number_of_shards
-
:副本的數量;number_of_replicas
在
mappings
中,我們設定索引的字段,在這裡,我們隻設定了id和name,id的映射類型是long,name的映射類型是text。這些類型我們會在後續為大家介紹。
請求體寫完後,我們點選發送,es傳回的結果如下:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "orgnization"
}
說明索引建立成功,索引的名字正是我們在請求中設定的
orgnization
然後,我們通過
elasticsearch-head
插件觀察一下剛才建立的索引,如圖:

我們可以看到索引
orgnization
已經建立好了,它有2個分片,分别是0和1,并且每個分片都是兩個副本。如果我們仔細觀察這個圖,可以看出
node-130
節點中的0分片,和
node-132
節點中的1分片,它們的邊框是加粗的,這說明它們是主節點,而邊框沒有加粗的節點是從節點,也就是我們說的副本節點。
檢視索引
如果我們要檢視一個索引的設定,可以通過如下請求方式:
GET /<index>
在我們的例子中,檢視
orgnization
索引的設定,我們在POSTMAN中發送如下的請求:
我們可以看到索引的具體設定,比如:mapping的設定,分片和副本的設定。這些和我們建立索引時候的設定是一樣的。
修改索引
索引一旦建立,我們是無法修改裡邊的内容的,不如說修改索引字段的名稱。但是我們是可以向索引中添加其他字段的,添加字段的方式如下:
PUT /<index>/_mapping
然後在我們的請求體中,寫好新添加的字段。比如,在我們的例子當中,新添加一個type字段,它的類型我們定義為long,請求如下:
http://192.168.73.130:9200/orgnization/_mapping
請求類型要改為
PUT
,請求體如下:
{
"properties": {
"type": {
"type": "long"
}
}
}
我們點選發送,傳回的結果如圖所示:
添加索引字段成功,我們再使用
GET
檢視一下索引,如圖:
我們可以成功的查詢到新添加的索引字段了。
删除索引
如果我們要删除一個索引,請求方式如下:
DELETE /<index>
假如我們要删除剛才建立的
orgnization
索引,我們隻要把請求的方法改成
DELETE
,然後通路我們索引就可以,
http://192.168.73.130:9200/orgnization
關閉索引
如果索引被關閉,那麼關于這個索引的所有讀寫操作都會被阻斷。索引的關閉也很簡單,請求方式如下:
POST /<index>/_close
在我們的例子中,如果要關閉索引,降請求方法改成
POST
,然後發送如下請求:
http://192.168.73.130:9200/orgnization/_close
打開索引
與關閉索引相對應的是打開索引,請求方式如下:
POST /<index>/_open
在我們的例子中,如果要打開索引,降請求方法改成
POST
http://192.168.73.130:9200/orgnization/_open
當機索引
當機索引和關閉索引類似,關閉索引是既不能讀,也不能寫。而當機索引是可以讀,但是不能寫。當機索引的請求方式如下:
POST /<index>/_freeze
對應我們的例子當中:
http://192.168.73.130:9200/orgnization/_freeze
解凍索引
與當機索引對應的是解凍索引,方式如下:
POST /<index>/_unfreeze
對應我們的例子:
http://192.168.73.130:9200/orgnization/_unfreeze