與ES的交互方式
與es的交互方式采用http的請(qǐng)求方式按傅,請(qǐng)求的格式如下:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
- <VERB>是請(qǐng)求的方法梆暮,比如:GET服协、POST、DELETE啦粹、PUT等偿荷。
- <PROTOCOL> 協(xié)議:http或者h(yuǎn)ttps。
- <HOST>主機(jī)地址唠椭。
- <PORT>端口
- <PATH>API的路徑跳纳。比如查看集群狀態(tài):
/_cluster/stats
。 - <QUERY_STRING>參數(shù)贪嫂。比如:?pretty寺庄,打印出格式化以后的Json。
- <BODY>請(qǐng)求的內(nèi)容力崇。比如:添加索引時(shí)的數(shù)據(jù)斗塘。
創(chuàng)建索引
es創(chuàng)建索引的請(qǐng)求方式如下:
PUT /<index>
- 請(qǐng)求的方法用
PUT
。 - /后面直接跟索引的名稱即可亮靴。
- 索引的設(shè)置和字段都放在Body中馍盟。
比如我們創(chuàng)建一個(gè)名字叫組織機(jī)構(gòu)
的索引,這個(gè)索引只有兩個(gè)字段茧吊,一個(gè)id贞岭,一個(gè)name。并且這個(gè)索引設(shè)置為2個(gè)分片搓侄,2個(gè)副本瞄桨。
我們使用POSTMAN發(fā)送請(qǐng)求,如下:
http://192.168.73.130:9200/orgnization
請(qǐng)求的方法選擇PUT
讶踪。然后在請(qǐng)求體(Body)中讲婚,寫(xiě)上索引的字段名稱,索引的分片數(shù)和副本數(shù)俊柔,如下:
{
"settings":{
"number_of_shards":2,
"number_of_replicas":2
},
"mappings":{
"properties":{
"id":{
"type":"long"
},
"name":{
"type":"text"
}
}
}
}
我們觀察一下筹麸,請(qǐng)求體中分為兩個(gè)部分:settings
和mappings
。在settings
中雏婶,我們?cè)O(shè)置了分片數(shù)和副本數(shù)物赶。
-
number_of_shards
:分片的數(shù)量; -
number_of_replicas
:副本的數(shù)量留晚;
在mappings
中酵紫,我們?cè)O(shè)置索引的字段,在這里错维,我們只設(shè)置了id和name奖地,id的映射類型是long,name的映射類型是text赋焕。這些類型我們會(huì)在后續(xù)為大家介紹参歹。
請(qǐng)求體寫(xiě)完后,我們點(diǎn)擊發(fā)送隆判,es返回的結(jié)果如下:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "orgnization"
}
說(shuō)明索引創(chuàng)建成功犬庇,索引的名字正是我們?cè)谡?qǐng)求中設(shè)置的orgnization
。
然后侨嘀,我們通過(guò)elasticsearch-head
插件觀察一下剛才創(chuàng)建的索引臭挽,如圖:
我們可以看到索引
orgnization
已經(jīng)創(chuàng)建好了,它有2個(gè)分片咬腕,分別是0和1欢峰,并且每個(gè)分片都是兩個(gè)副本。如果我們仔細(xì)觀察這個(gè)圖涨共,可以看出node-130
節(jié)點(diǎn)中的0分片纽帖,和node-132
節(jié)點(diǎn)中的1分片,它們的邊框是加粗的煞赢,這說(shuō)明它們是主節(jié)點(diǎn)抛计,而邊框沒(méi)有加粗的節(jié)點(diǎn)是從節(jié)點(diǎn),也就是我們說(shuō)的副本節(jié)點(diǎn)照筑。
查看索引
如果我們要查看一個(gè)索引的設(shè)置吹截,可以通過(guò)如下請(qǐng)求方式:
GET /<index>
在我們的例子中,查看orgnization
索引的設(shè)置凝危,我們?cè)赑OSTMAN中發(fā)送如下的請(qǐng)求:
我們可以看到索引的具體設(shè)置波俄,比如:mapping的設(shè)置,分片和副本的設(shè)置蛾默。這些和我們創(chuàng)建索引時(shí)候的設(shè)置是一樣的懦铺。
修改索引
索引一旦創(chuàng)建,我們是無(wú)法修改里邊的內(nèi)容的支鸡,不如說(shuō)修改索引字段的名稱冬念。但是我們是可以向索引中添加其他字段的趁窃,添加字段的方式如下:
PUT /<index>/_mapping
然后在我們的請(qǐng)求體中,寫(xiě)好新添加的字段急前。比如醒陆,在我們的例子當(dāng)中,新添加一個(gè)type字段裆针,它的類型我們定義為long刨摩,請(qǐng)求如下:
http://192.168.73.130:9200/orgnization/_mapping
請(qǐng)求類型要改為PUT
,請(qǐng)求體如下:
{
"properties": {
"type": {
"type": "long"
}
}
}
我們點(diǎn)擊發(fā)送世吨,返回的結(jié)果如圖所示:
添加索引字段成功澡刹,我們?cè)偈褂?code>GET查看一下索引,如圖:
我們可以成功的查詢到新添加的索引字段了耘婚。
刪除索引
如果我們要?jiǎng)h除一個(gè)索引罢浇,請(qǐng)求方式如下:
DELETE /<index>
假如我們要?jiǎng)h除剛才創(chuàng)建的orgnization
索引,我們只要把請(qǐng)求的方法改成DELETE
边篮,然后訪問(wèn)我們索引就可以己莺,
http://192.168.73.130:9200/orgnization
關(guān)閉索引
如果索引被關(guān)閉,那么關(guān)于這個(gè)索引的所有讀寫(xiě)操作都會(huì)被阻斷戈轿。索引的關(guān)閉也很簡(jiǎn)單凌受,請(qǐng)求方式如下:
POST /<index>/_close
在我們的例子中,如果要關(guān)閉索引思杯,降請(qǐng)求方法改成POST
胜蛉,然后發(fā)送如下請(qǐng)求:
http://192.168.73.130:9200/orgnization/_close
打開(kāi)索引
與關(guān)閉索引相對(duì)應(yīng)的是打開(kāi)索引,請(qǐng)求方式如下:
POST /<index>/_open
在我們的例子中色乾,如果要打開(kāi)索引誊册,降請(qǐng)求方法改成POST
,然后發(fā)送如下請(qǐng)求:
http://192.168.73.130:9200/orgnization/_open
凍結(jié)索引
凍結(jié)索引和關(guān)閉索引類似暖璧,關(guān)閉索引是既不能讀案怯,也不能寫(xiě)。而凍結(jié)索引是可以讀澎办,但是不能寫(xiě)嘲碱。凍結(jié)索引的請(qǐng)求方式如下:
POST /<index>/_freeze
對(duì)應(yīng)我們的例子當(dāng)中:
http://192.168.73.130:9200/orgnization/_freeze
解凍索引
與凍結(jié)索引對(duì)應(yīng)的是解凍索引,方式如下:
POST /<index>/_unfreeze
對(duì)應(yīng)我們的例子:
http://192.168.73.130:9200/orgnization/_unfreeze
這節(jié)內(nèi)容到這里就結(jié)束了局蚀。麦锯。