网站首页 > 技术文章 正文
前言
ElasticSearch,开源的搜索和数据分析引擎,也是名列前茅的 nosql。
很多时候会想拿它和关系型数据库做对比,严格上它们是没有太多可比性的。
不过把有的东西放在一起比较,会帮助我们快速去理解一些 ElasticSearch 的内容。
老黄这边抽空梳理了一些常用的 sql 语句 “对应” ElasticSearch 的操作,主要是针对 CURD 的。
示例用的是 mysql 和 ElasticSearch 7.12.0 。
表操作
为了简单起见,弄一个简单的订单表 order-2021 来演示。
删除表
创建表
NOTE:
mysql 的索引需要一个一个的加,ES 这边不需要。
mysql 有自增 Id, ES 这边也会有自动生成 Id 的操作,同样的,两边也可以自定义 Id。
keyword 和 text 按需调整。
改表名
NOTE: ES 的是起一个别名,然后两个名字都可以用。
插入数据
单条插入
批量插入
NOTE:
ES 的批量操作需要注意,每一行最后要有换行符 \n 结尾
Content-Type 指定为 application/x-ndjson
更新数据
根据ID更新
根据查询条件更新
NOTE: ES 的条件更新分为两部分,一个是 query ,也就是 where 部分, 一个是 script ,也就是 set 部分。
删除数据
根据Id删除
根据查询条件删除
查询数据
查询全部
条件查询
NOTE:
ES 的条件查询是有非常多的, 这里只列举了部分。
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 特有的功能时,去查询官方文档也基本可以搞定。
- 上一篇: 灵活调整打印 分页(打印时分页符如何调整)
- 下一篇: SQL分页方法(sql分页怎么实现)
猜你喜欢
- 2024-10-14 Excel表格太大时,怎么打印到一页上?
- 2024-10-14 写给Java应用开发者的Elasticsearch调优手册
- 2024-10-14 Excel表格太大时,怎么打印到一页上?收藏
- 2024-10-14 Excel中如何设置自动分页打印(excel表格怎么设置分页打印)
- 2024-10-14 还在浪费A4纸?按下Excel这个按钮,所有内容即可打印在同一页
- 2024-10-14 滑动页面时的控件设计规范——吸底&锚点
- 2024-10-14 ElasticSearch优化点简述(elasticsearch集群优化)
- 2024-10-14 一组Excel打印技巧,实用就好(excel打印技巧大全)
- 2024-10-14 打印设置用得好,天天追着幸福跑(打印基本设置)
- 2024-10-14 VBA实用代码赏析之八:页面、日期函数及选择的操作
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)