前言

ElasticSearch,开源的搜索和数据分析引擎,也是名列前茅的 nosql。

很多时候会想拿它和关系型数据库做对比,严格上它们是没有太多可比性的。

不过把有的东西放在一起比较,会帮助我们快速去理解一些 ElasticSearch 的内容。

老黄这边抽空梳理了一些常用的 sql 语句 “对应” ElasticSearch 的操作,主要是针对 CURD 的。

示例用的是 mysql 和 ElasticSearch 7.12.0 。

表操作

为了简单起见,弄一个简单的订单表 order-2021 来演示。

删除表

创建表

NOTE:

  1. mysql 的索引需要一个一个的加,ES 这边不需要。

  2. mysql 有自增 Id, ES 这边也会有自动生成 Id 的操作,同样的,两边也可以自定义 Id。

  3. keyword 和 text 按需调整。

改表名

NOTE: ES 的是起一个别名,然后两个名字都可以用。

插入数据

单条插入

批量插入

NOTE:

  1. ES 的批量操作需要注意,每一行最后要有换行符 \n 结尾

  2. Content-Type 指定为 application/x-ndjson

更新数据

根据ID更新

根据查询条件更新

NOTE: ES 的条件更新分为两部分,一个是 query ,也就是 where 部分, 一个是 script ,也就是 set 部分。

删除数据

根据Id删除

根据查询条件删除

查询数据

查询全部

条件查询

NOTE:

  1. ES 的条件查询是有非常多的, 这里只列举了部分。

  2. ES 的查询,在默认情况下会有打分的操作,是会损耗性能的,而常规的 sql 查询时不需要这些,所以用 bool + filter 来忽略。

查询指定字段

NOTE: 查询的时候,如果只要几个字段,那么可以通过 _source 来指定。

查询数量

NOTE: 根据指定条件获取数量,建议用 _count 来查询,_search 查询的结果里面的条数不一定准确。

浅分页

NOTE: 浅分页,页码不宜过深,适合滚动加载的场景,深度分页可以考虑 SearchAfter

Group By

NOTE: group by 属于聚合操作的一种,要用 aggs ,聚合,不用原数据,所以 size 设为 0。

Avg/Min/Max/Sum

写在最后

Elasticsearch 这一块常用的 CURD 操作,和常用的关系型数据库对照一遍,其实很容易上手。

要用到一些 Elasticsearch 特有的功能时,去查询官方文档也基本可以搞定。

聊一聊Elasticsearch和MySQL的常用操作相关推荐

  1. php mysql 权重_PHP对MySql的常用操作

    关于PHP对MySql的常用操作 最近做网站,用PHP操作数据库也很多次了,但总是忘记,参考了网上的很多资料,算是整理记录下. 数据库操作类 实现数据库的连接,断开,以及请求: /** * Creat ...

  2. MySQL数据库常用操作(20221211)

    记录:360 场景:MySQL数据库常用操作,启动.重启.停止MySQL服务:创建用户.数据库.表.主键.索引.注释等.配置远程可连接.配置环境变量.常用系统表操作.常用命令行操作.表的增删改查等操作 ...

  3. Windows下 MySQL命令 常用操作

    2019独角兽企业重金招聘Python工程师标准>>> Windows平台下MySQL常用操作与命令 (一)客户端连接MySQL数据库服务器 命令格式:mysql -h 数据库服务器 ...

  4. ubuntu下安装mysql及常用操作

    1.可通过ps -ef | grep mysql命令查看系统中是否有安装mysql 如果出现类似上述的页面,就证明是已经安装过了mysql,否则就是没有. 2.安装mysql 很简单,只需要键入如下命 ...

  5. Linux下MySql数据库常用操作

    1.显示数据库 show databases; 2.选择数据库 use 数据库名; 3.显示数据库中的表 show tables; 4.显示数据表的结构 describe 表名; 5.显示表中记录 S ...

  6. Mysql数据库常用操作整理

    0.说明 MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便.灵活.开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用.从 ...

  7. php面向对象封装mysql_php mysqli面向对象封装mysql数据库常用操作

    首先封装好mysql类 mysql.php class Mysql{ private static $host="localhost"; private static $user= ...

  8. linux关于mysql_Linux关于MySQL的常用操作

    注意:MySQL中每个命令后都要以分号:结尾. 1.显示数据库 mysql> show databases; +----------+ | Database | +----------+ | m ...

  9. mysql数据库常用操作

    目前最流行的数据库: oracle.mysql.sqlserver.db2.sqline --:单行注释 #:也是单行注释 /* 注释内容*/:多行注释 mysql -uroot -p密码:登录mys ...

最新文章

  1. mysql-4.0.20 use on scounix 5.0.7 error :dynamic linker:..:could not open libgthreads.so help!!!!
  2. 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)...
  3. UML实践详细经典教程
  4. 切换ubuntu启动方式 命令行/图形界面
  5. 我们为什么会爱上一个人?
  6. 北林oj-算法设计与分析-Don‘t touch my cake(题意+代码)
  7. 2017.9.14 星际竞速 失败总结
  8. 关于安装AccessDatabaseEngine_x64.exe 的说明
  9. Linux glibc 库的修复方案扯出更严重的新漏洞
  10. m2e (maven eclipse) 在运行一些命令时出现了无法compile(Unable to locate the Javac Compiler in:)...
  11. Arduino 超声波避障循迹小车,四轮智能小车
  12. 如何取消计算机中的0-9,告诉你如何关闭win10易升程序
  13. iOS Zip文件解压
  14. laravel-excel 3 导出(多图片导出)
  15. 2021年网站dns解析错误有什么办法解决呢?
  16. 读文献——《Deep Residual Learning for Image Recognition》
  17. 30多种免费的高级WordPress主题,适用于令人惊叹的照片,教育和房地产网站
  18. VS2010如何添加MSCOMM控件
  19. Linux内部字段分离符环境变量IFS
  20. 交互设计师必备的9种能力

热门文章

  1. Cisco路由器密码恢复
  2. 嵌套函数,匿名函数,高阶函数
  3. c#中的奇异递归模式
  4. 第2课:关闭被黑客扫描的端口
  5. 易宝支付碰到 交易签名无效问题
  6. 高人写的浙大简史(转)
  7. c语言编手机蓝牙软件的代码,51单片机C语言的简易蓝牙锁代码
  8. 智能家居设备_您的智能家居设备正在监视您吗?
  9. .NET Framework 4.8预览
  10. 自从装了windows神器,再也不用羡慕mac了