六、对ES增删改查

摘要:
1、 ES的数据结构与MySQL的数据结构非常不同。现在将MySQL与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数据库命令对比

命令含义ESMySQL
查看GETselect
上传、新键POSTinsert,create
更新PUTupdate
删除DELETEDELETE

MySQL中的查看在ES中使用GET命令,以此类推

3、MySQL的数据在es中存放形式

在MySQL中是通过表的形式存放数据的,如下图所示
六、对ES增删改查第1张

在ES中数据是如下存放的
六、对ES增删改查第2张

_index索引对应MySQL中的库
_type类型对应MySQL中的表
_id对应MySQL中的id
_score是评分,显示搜索结果的优先级,优先级高的结果优先显示

在ES中插入数据,如下图所示
六、对ES增删改查第3张

资料:官方文档

二、查看ES数据库

1、使用kibana控制台

打开主页-->控制台
六、对ES增删改查第4张

如下图所示,PUT表示新键,linux表示索引,_doc表示类型,1表示id号;
name表示key,tz表示值,数据是json格式的;
六、对ES增删改查第5张

我们可以使用es-head插件查看插入的数据
点击数据浏览-->linux
六、对ES增删改查第6张

kibana的历史记录也很好用,可以看到之前执行过的命令

2、使用curl命令

es中内置了很多方便监控的模块,如查看健康状态使用GET /_cat/health

$ curl -v 10.154.0.110:9200/_cat/health

六、对ES增删改查第7张

也可在浏览器中使用
六、对ES增删改查第8张

在kibana中可以查看内置的查询模块
六、对ES增删改查第9张

3、使用es-head插件

这是我们创建的索引
六、对ES增删改查第10张

里面有一行数据
六、对ES增删改查第11张

数据内容如下
六、对ES增删改查第12张

三、操作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控制台界面操作
六、对ES增删改查第13张

修改id号插入第2条数据
六、对ES增删改查第14张

使用es-head插件查看插入的数据
六、对ES增删改查第15张

2)使用随机ID插入数据
在POST请求方法下,不指定ID新键数据会随机产生一串数据作为id号
六、对ES增删改查第16张

在es-head下查看
六、对ES增删改查第17张

2、查询数据

先插入测试数据,可以使用ctrl+A全选,一起运行
六、对ES增删改查第18张

1)查询所有

GET linux/_search/

hits表示命中,共命中4条数据,数据都是以json格式显示的
六、对ES增删改查第19张

2)条件查询
查询name为tz996的数据

GET linux/_search
{
  "query": {
    "term": {
      "name": {
        "value": "tz996"
      }
    }
  }
}

六、对ES增删改查第20张

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表示必须要有的字段

查询结果
六、对ES增删改查第21张

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"
}

六、对ES增删改查第22张

可以看到数据已经更新
六、对ES增删改查第23张

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

效果如下
六、对ES增删改查第24张

三、postman软件使用

大概长这个样子,以后抽时间研究一下
六、对ES增删改查第25张


参考资料
老男孩教育_day104_视频

免责声明:文章转载自《六、对ES增删改查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决MSSQL 2008不能用IP登录的问题.NET Core 常用加密和Hash工具NETCore.Encrypt下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系

MS SQL2005对2000进行了很大的改进,而用户关系这部分也变得相当复杂了,很多朋友都对此一知半解!下面,我将把我应用中总结的和大家分享下,先从概念入手,希望对不理解的朋友有点提示。 今天我们要说的包括服务器登录名Server Login,服务器角色Server Role,数据库用户DB User,数据库架构DB Schema,数据库角色DB Ro...

【SQL Server学习笔记】通过加密来保护数据库中的数据

在SQL Server 2005引入了内建数据加密,通过系统函数、证书、密钥完成加密。 一、通过函数加密。 二、与通过证书授权实现的数字证书相似,SQL Server证书包括了公钥和私钥这一对密钥,是数据库级的安全对象,他们用来加密和解密数据。 三、SQL Server还拥有创建非对称密钥和对称密钥的能力。非对称密钥与证书相似,公钥用来加密数据库,私钥用来...

数据库基础 MySQL

数据库 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。 数据库管理系统软件 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库...

【PostgREST 基本教程(一)】 PostgREST快速搭建

PostgREST 基本教程 PostgREST是一个可以直接将你的PostgreSQL数据库直接提供RESTful API 的稳定WEB服务。数据库结构和约束决定API的端点和操作。 使用PostgREST可以替代手动的CRUD开发。自定义的API服务经常遇到很多问题。人工编写业务逻辑经常会导致重复,忽略或者绕过数据库数据结构。对象关系映射这种抽象会导致...

存储过程优点

储过程的优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3.存储过程可以重复使...

oracle10g安装,卸载

一、安装 1.因为oracle的特殊性,笔者选择通过虚拟机安装windows7旗舰版安装数据库,大家的系统假设是windows xp。windows 7,windows 8能够直接安装,windows 10对于该版本号的oracle存在不兼容,不推荐使用。 2.笔者使用的是oracle10g的压缩包。大家也能够使用镜像进行安装,打开oracle安装程序...