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