六、对ES增删改查
一、ES的數(shù)據(jù)結(jié)構(gòu)
ES跟MySQL有很大的區(qū)別,現(xiàn)在將MySQL跟ES做對比,這樣方便理解。
因?yàn)镋S數(shù)據(jù)庫是通過API接口進(jìn)行訪問的,訪問的方式有如下幾種
1、es-head插件
2、kibana控制臺(tái)
3、curl命令
4、Postman工具
1、ES數(shù)據(jù)庫結(jié)構(gòu)對比
| MySQL術(shù)語 | ES術(shù)語 |
|---|---|
| 庫,databases | 索引,index |
| 表,tables | 類型,_doc |
| 字段(列) | json格式的key |
| 值 | json格式的value |
| 行 | 文檔,doc |
MySQL中的庫在ES中叫索引,MySQL表在es中叫類型,以此類推
2、操作ES數(shù)據(jù)庫命令對比
| 命令含義 | ES | MySQL |
|---|---|---|
| 查看 | GET | select |
| 上傳、新鍵 | POST | insert,create |
| 更新 | PUT | update |
| 刪除 | DELETE | DELETE |
MySQL中的查看在ES中使用GET命令,以此類推
3、MySQL的數(shù)據(jù)在es中存放形式
在MySQL中是通過表的形式存放數(shù)據(jù)的,如下圖所示
在ES中數(shù)據(jù)是如下存放的
_index索引對應(yīng)MySQL中的庫
_type類型對應(yīng)MySQL中的表
_id對應(yīng)MySQL中的id
_score是評分,顯示搜索結(jié)果的優(yōu)先級(jí),優(yōu)先級(jí)高的結(jié)果優(yōu)先顯示
在ES中插入數(shù)據(jù),如下圖所示
資料:官方文檔
二、查看ES數(shù)據(jù)庫
1、使用kibana控制臺(tái)
打開主頁-->控制臺(tái)
如下圖所示,PUT表示新鍵,linux表示索引,_doc表示類型,1表示id號(hào);
name表示key,tz表示值,數(shù)據(jù)是json格式的;
我們可以使用es-head插件查看插入的數(shù)據(jù)
點(diǎn)擊數(shù)據(jù)瀏覽-->linux
kibana的歷史記錄也很好用,可以看到之前執(zhí)行過的命令
2、使用curl命令
es中內(nèi)置了很多方便監(jiān)控的模塊,如查看健康狀態(tài)使用GET /_cat/health
$ curl -v 10.154.0.110:9200/_cat/health
也可在瀏覽器中使用
在kibana中可以查看內(nèi)置的查詢模塊
3、使用es-head插件
這是我們創(chuàng)建的索引
里面有一行數(shù)據(jù)
數(shù)據(jù)內(nèi)容如下
三、操作ES數(shù)據(jù)庫
1、插入數(shù)據(jù)
1)使用自定義ID插入數(shù)據(jù)
curl本質(zhì)上使用的是請求方法向es數(shù)據(jù)庫中插入或查詢數(shù)據(jù)
curl命令操作
$ curl -XPUT 'http://10.154.0.110:9200/linux/_doc/1' -H 'Content-Type:application/json' -d '
{
"name":"tz",
"age":"68"
}'
-X:指定請求類型
-H:修改請求頭數(shù)據(jù)
-d:上傳數(shù)據(jù)
kinbana控制臺(tái)界面操作
修改id號(hào)插入第2條數(shù)據(jù)
使用es-head插件查看插入的數(shù)據(jù)
2)使用隨機(jī)ID插入數(shù)據(jù)
在POST請求方法下,不指定ID新鍵數(shù)據(jù)會(huì)隨機(jī)產(chǎn)生一串?dāng)?shù)據(jù)作為id號(hào)
在es-head下查看
2、查詢數(shù)據(jù)
先插入測試數(shù)據(jù),可以使用ctrl+A全選,一起運(yùn)行
1)查詢所有
GET linux/_search/
hits表示命中,共命中4條數(shù)據(jù),數(shù)據(jù)都是以json格式顯示的
2)條件查詢
查詢name為tz996的數(shù)據(jù)
GET linux/_search
{
"query": {
"term": {
"name": {
"value": "tz996"
}
}
}
}
3)多條件查詢
#條件1
address是GZ
#條件2
job是ops
#條件3
age>=21 && age<=24
#查詢語句
GET linux/_search
{
"query": {
"bool":{
"must": [
{
"term": {
"address.keyword": "GZ"
}
},
{
"term": {
"job.keyword": "ops"
}
},
{
"range": {
"age.keyword": {
"gte": 21,
"lte": 24
}
}
}
]
}
}
}
#bool里有must,must表示必須要有的字段
查詢結(jié)果
3、更新數(shù)據(jù)
1)根據(jù)自定義id更新
#使用PUT命令
PUT linux/_doc/1
{
"name" : "tz996",
"age" : "29",
"address" : "GZ",
"job" : "dev"
}
#POST命令也能更新
POST linux/_doc/1
{
"name" : "tz997",
"age" : "33",
"address" : "GZ",
"job" : "dev"
}
可以看到數(shù)據(jù)已經(jīng)更新
2)隨機(jī)ID更新
需要先根據(jù)字段查到隨機(jī)ID,然后根據(jù)隨機(jī)ID修改數(shù)據(jù)
#先查到tz996的隨機(jī)ID
GET linux/_search
{
"query": {
"term": {
"name": {
"value": "tz996"
}
}
}
}
#根據(jù)隨機(jī)ID再修改數(shù)據(jù)
POST linux/_doc/8jbqkHsBtAovAB3B-W6A
{
"name" : "tz997",
"age" : "33",
"address" : "GZ",
"job" : "dev"
}
4、刪除數(shù)據(jù)
先查到指定ID,然后根據(jù)指定ID刪除數(shù)據(jù)
GET linux/_search
{
"query": {
"term": {
"name": {
"value": "tz996"
}
}
}
}
DELETE linux/_doc/8jbqkHsBtAovAB3B-W6A
效果如下
三、postman軟件使用
大概長這個(gè)樣子,以后抽時(shí)間研究一下
參考資料
老男孩教育_day104_視頻
今天的學(xué)習(xí)是為了以后的工作更加的輕松!
總結(jié)
- 上一篇: html书签展示(带搜索)
- 下一篇: WIN10平板 传递优化文件能否删除