與ES的交互方式
與es的交互方式採用http的請求方式,請求的格式如下:
<code>curl -X '://:/?' -d ''/<code>
- 是請求的方法,比如:GET、POST、DELETE、PUT等。
- 協議:http或者https。
- 主機地址。
- 端口
- API的路徑。比如查看集群狀態:/_cluster/stats。
- 參數。比如:?pretty,打印出格式化以後的Json。
- 請求的內容。比如:添加索引時的數據。
創建索引
es創建索引的請求方式如下:
<code>PUT //<code>
- 請求的方法用PUT。
- /後面直接跟索引的名稱即可。
- 索引的設置和字段都放在Body中。
比如我們創建一個名字叫組織機構的索引,這個索引只有兩個字段,一個id,一個name。並且這個索引設置為2個分片,2個副本。
我們使用POSTMAN發送請求,如下:
<code>http://192.168.73.130:9200/orgnization/<code>
請求的方法選擇PUT。然後在請求體(Body)中,寫上索引的字段名稱,索引的分片數和副本數,如下:
<code>{ "settings":{ "number_of_shards":2, "number_of_replicas":2 }, "mappings":{ "properties":{ "id":{ "type":"long" }, "name":{ "type":"text" } } } }/<code>
我們觀察一下,請求體中分為兩個部分:settings和mappings。在settings中,我們設置了分片數和副本數。
- number_of_shards:分片的數量;
- number_of_replicas:副本的數量;
在mappings中,我們設置索引的字段,在這裡,我們只設置了id和name,id的映射類型是long,name的映射類型是text。這些類型我們會在後續為大家介紹。
請求體寫完後,我們點擊發送,es返回的結果如下:
<code>{ "acknowledged": true, "shards_acknowledged": true, "index": "orgnization" }/<code>
說明索引創建成功,索引的名字正是我們在請求中設置的orgnization。
然後,我們通過elasticsearch-head插件觀察一下剛才創建的索引,如圖:
我們可以看到索引orgnization已經創建好了,它有2個分片,分別是0和1,並且每個分片都是兩個副本。如果我們仔細觀察這個圖,可以看出node-130節點中的0分片,和node-132節點中的1分片,它們的邊框是加粗的,這說明它們是主節點,而邊框沒有加粗的節點是從節點,也就是我們說的副本節點。
查看索引
如果我們要查看一個索引的設置,可以通過如下請求方式:
<code>GET //<code>
在我們的例子中,查看orgnization索引的設置,我們在POSTMAN中發送如下的請求:
我們可以看到索引的具體設置,比如:mapping的設置,分片和副本的設置。這些和我們創建索引時候的設置是一樣的。
修改索引
索引一旦創建,我們是無法修改裡邊的內容的,不如說修改索引字段的名稱。但是我們是可以向索引中添加其他字段的,添加字段的方式如下:
<code>PUT //_mapping/<code>
然後在我們的請求體中,寫好新添加的字段。比如,在我們的例子當中,新添加一個type字段,它的類型我們定義為long,請求如下:
<code>http://192.168.73.130:9200/orgnization/_mapping/<code>
請求類型要改為PUT,請求體如下:
<code>{ "properties": { "type": { "type": "long" } } }/<code>
我們點擊發送,返回的結果如圖所示:
添加索引字段成功,我們再使用GET查看一下索引,如圖:
我們可以成功的查詢到新添加的索引字段了。
刪除索引
如果我們要刪除一個索引,請求方式如下:
<code>DELETE //<code>
假如我們要刪除剛才創建的orgnization索引,我們只要把請求的方法改成DELETE,然後訪問我們索引就可以,
<code>http://192.168.73.130:9200/orgnization/<code>
關閉索引
如果索引被關閉,那麼關於這個索引的所有讀寫操作都會被阻斷。索引的關閉也很簡單,請求方式如下:
<code>POST //_close/<code>
在我們的例子中,如果要關閉索引,降請求方法改成POST,然後發送如下請求:
<code>http://192.168.73.130:9200/orgnization/_close/<code>
打開索引
與關閉索引相對應的是打開索引,請求方式如下:
<code>POST //_open/<code>
在我們的例子中,如果要打開索引,降請求方法改成POST,然後發送如下請求:
<code>http://192.168.73.130:9200/orgnization/_open/<code>
凍結索引
凍結索引和關閉索引類似,關閉索引是既不能讀,也不能寫。而凍結索引是可以讀,但是不能寫。凍結索引的請求方式如下:
<code>POST //_freeze/<code>
對應我們的例子當中:
<code>http://192.168.73.130:9200/orgnization/_freeze/<code>
解凍索引
與凍結索引對應的是解凍索引,方式如下:
<code>POST //_unfreeze/<code>
對應我們的例子:
<code>http://192.168.73.130:9200/orgnization/_unfreeze/<code>