一、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中存放形式
_index索引对应MySQL中的库
_type类型对应MySQL中的表
_id对应MySQL中的id
_score是评分,显示搜索结果的优先级,优先级高的结果优先显示
资料:官方文档
二、查看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
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:上传数据
2)使用随机ID插入数据
在POST请求方法下,不指定ID新键数据会随机产生一串数据作为id号

2、查询数据
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_视频
今天的学习是为了以后的工作更加的轻松!






















