之前我們已經(jīng)了解了 ES 中一些比較重要的概念,也搭建好了使用 ES 所需的基礎(chǔ)環(huán)境窗宦,那現(xiàn)在就可以開始使用 ES 了赦颇。
使用 ES 其實(shí)主要就是操作索引和文檔。接下來的問題就是如何去操作了赴涵,ES 提供了許多常見語言的支持媒怯,但這不是我們目前的重點(diǎn),我們先看如何用 RESTful API 去操作 ES髓窜,我們選擇 Kibana 來發(fā)送 RESTful 請求扇苞,當(dāng)然你也可以使用其它工具欺殿。
操作索引相對簡單些,也不會經(jīng)常去修改索引鳖敷。接下來我們先學(xué)習(xí)常用操作索引的 API脖苏。
1、創(chuàng)建索引
創(chuàng)建索引時只指定索引名定踱,注意索引名是唯一的棍潘,不能包含大寫字母
PUT user
通過 Elasticsearch head 工具可以看到創(chuàng)建的索引,以及其詳細(xì)信息:
綠色方框數(shù)字表示索引的分片崖媚,點(diǎn)擊可以查看分片信息亦歉。粗線框表示主分片,細(xì)線框表示副本分片畅哑。
可以看到索引默認(rèn)的分片和副本分片數(shù)量都是1肴楷,同時也沒有文檔字段的相關(guān)約束信息。
創(chuàng)建索引時我們也可以指定一些基本信息荠呐,例如分片數(shù)量:
PUT user
{
"settings": {
"index": {
# 每個索引的主分片數(shù)
"number_of_shards": 2,
# 每個主分片對應(yīng)的副本分片數(shù)
"number_of_replicas": 1
}
}
}
當(dāng)然你也可以使用 head 工具創(chuàng)建索引:
2赛蔫、添加文檔
有了索引,就可以向文檔中添加一條文檔數(shù)據(jù)了直秆,這里使用默認(rèn)的類型名_doc
濒募,1為文檔id,不指定的話 ES 會給一個默認(rèn)值:
POST /user/_doc/1
{
"name": "馬老師",
"age": 30,
"label": [
"不講武德",
"耗子尾汁"
]
}
在 head 工具中以 JSON 格式查看數(shù)據(jù):
關(guān)于文檔的操作后邊會詳細(xì)介紹圾结,這里僅僅是為了幫助學(xué)習(xí)索引的內(nèi)容瑰剃。
3、查看索引信息
前邊使用了 head 工具查看索引信息筝野,也可以使用如下 API:
GET user
在添加了一條文檔數(shù)據(jù)后的索引信息如下:
4晌姚、修改索引
如下修改了索引禁止添加文檔,允許讀文檔歇竟,即true
表示禁止挥唠,false
表示允許:
PUT user/_settings
{
"blocks.write": true,
"blocks.read": false
}
5、關(guān)閉焕议、打開索引
# 關(guān)閉索引
POST user/_close
# 打開索引
POST user/_open
6宝磨、創(chuàng)建索引別名
如下為索引user
創(chuàng)建了一個user_info
別名,如果別名是唯一的盅安,也可以用來代替索引名
POST /_aliases
{
"actions": [
{
"add": {
"index": "user",
"alias": "user_alias"
}
}
]
}
將add
修改為remove
表示移除別名唤锉。
7、刪除索引
DELETE user
關(guān)于索引的操作就先介紹這么多吧别瞭,常用的操作也都可以在 head 工具中直接完成窿祥。