所有的REST命令都可以在 Kibana 7.6.1的dev_tools工具上正常運(yùn)行
主要內(nèi)容:檢查集群的健康狀態(tài)磷脯,簡(jiǎn)單的索引操作,簡(jiǎn)單的CRUD文檔操作娩脾,以及判定文檔是否存在
1赵誓、檢查ES是否啟動(dòng)成功
GET ?pretty
2、檢查集群的健康狀態(tài)
GET /_cat/health?v
GET _cluster/health
3、查看集群中有哪些索引
GET /_cat/indices?v
4俩功、簡(jiǎn)單的索引操作
創(chuàng)建索引:PUT /ecommerce?pretty
刪除索引:DELETE /ecommerce?pretty
關(guān)閉索引:POST /ecommerce/_close
打開索引:POST /ecommerce/_open
在 7.0 以及之后的版本中 Type 被廢棄了幻枉。一個(gè) index 中只有一個(gè)默認(rèn)的 type,即
_doc
诡蜓。ES 的Type 被廢棄后熬甫,庫(kù)表合一,Index 既可以被認(rèn)為對(duì)應(yīng) MySQL 的 Database万牺,也可以認(rèn)為對(duì)應(yīng) table罗珍。
5、簡(jiǎn)單的CRUD操作
5.1 創(chuàng)建文檔
全量替換:指定ID
- 一般來(lái)說(shuō)脚粟,是從某些其他的系統(tǒng)中覆旱,導(dǎo)入一些數(shù)據(jù)到es時(shí),會(huì)采取這種方式
- document是不可變的核无,如果要修改document的內(nèi)容扣唱,第一種方式就是全量替換,直接對(duì)document重新建立索引团南,替換里面所有的內(nèi)容
- es會(huì)將老的document標(biāo)記為deleted噪沙,然后新增我們給定的一個(gè)document,當(dāng)我們創(chuàng)建越來(lái)越多的document的時(shí)候吐根,es會(huì)在適當(dāng)?shù)臅r(shí)機(jī)在后臺(tái)自動(dòng)刪除標(biāo)記為deleted的document
PUT /index/_doc/id ##POST方法也適用
{
"json數(shù)據(jù)"
}
強(qiáng)制創(chuàng)建:(防止覆蓋)
創(chuàng)建文檔時(shí)正歼,不想替換id已存在的文檔,可以通過(guò)_create加以限制拷橘,如下
PUT /index/_create/id
{
"json數(shù)據(jù)"
}
第三種格式:(自動(dòng)生成ID)
需要使用POST方法,而不是PUT方法局义。
自動(dòng)生成的id,長(zhǎng)度為20個(gè)字符冗疮,URL安全萄唇,base64編碼,GUID术幔,分布式系統(tǒng)并行生成時(shí)不可能會(huì)發(fā)生沖突
POST /index/_doc
{
"json數(shù)據(jù)"
}
創(chuàng)建示例01(全量替換)
PUT /ecommerce/_doc/1
{
"name": "gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
創(chuàng)建示例02(強(qiáng)制創(chuàng)建)
PUT /ecommerce/_create/2
{
"name": "jiajieshi yagao",
"desc": "youxiao fangzhu",
"price": 25,
"producer": "jiajieshi producer",
"tags": [
"fangzhu"
]
}
## 該文檔如果存在另萤,添加失敗。
創(chuàng)建示例03(自動(dòng)生成ID)
POST /ecommerce/_doc
{
"name": "zhonghua yagao",
"desc": "caoben zhiwu",
"price": 40,
"producer": "zhonghua producer",
"tags": [
"qingxin"
]
}
5.2 查看文檔
查看格式
GET /index/type/id
查看示例
GET /ecommerce/_doc/1
查詢返回的值
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 30,
"producer" : "gaolujie producer",
"tags" : [
"meibai",
"fangzhu"
]
}
}
5.3 更新文檔
文檔更細(xì)
更新示例(全量更新)
PUT /ecommerce/_doc/1
{
"name": "jiaqiangban gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 40,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
再次查詢,檢查是否更新
# GET /index/type/id
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_seq_no" : 2,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "jiaqiangban gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 40,
"producer" : "gaolujie producer",
"tags" : [
"meibai",
"fangzhu"
]
}
}
注意的小點(diǎn)
ElasticSearch實(shí)際上并沒(méi)有在底層執(zhí)行覆蓋更新诅挑。而是先刪除舊文檔四敞,再添加一條新文檔。
ES也支持部分字段更新拔妥,參見(jiàn)ElasticSearch 7.x 實(shí)戰(zhàn)入門07
5.4 刪除文檔
示例
DELETE /ecommerce/_doc/4
成功執(zhí)行后的返回的結(jié)果
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "4",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 7,
"_primary_term" : 1
}
6忿危、判定文檔是否存在
HEAD index/_doc/1
示例
HEAD ecommerce/_doc/1
存在的話返回 200 - OK
不存在返回 404 - Not Found
注意
type的概念已經(jīng)從ElasticSearch中移除。
下一篇: 02毒嫡、7種搜索方式的簡(jiǎn)單操作 http://www.reibang.com/p/5e5cedaa1a31