[ES三周年]理解 ES 查询机制
ES 查询 理解 机制 三周年
2023-06-13 09:15:38 时间
为什么需要使用 ES 进行搜索
ES除了拥有索引上的优势,最重要的还是数据的结构,这都是ES为什么效率高,会使用它的原因。
1,结构化数据 VS 非结构化数据
- 结构化数据: 也称作行数据,关系型数据库进行存储和管理,是由二维表结构来逻辑表达和实现(可以使用行、列来表现)的数据,严格地遵循数据格式与长度规范。
- 非结构化数据: 又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、word文档,邮件,各类报表、图片和音频、视频信息等。
其他的不同之处还有: 结构化数据往往占用的空间较小,占企业数据的 20% 左右,容易管理。 非结构化数据通常占用更多的存储空间,约占企业数据的 80% 左右,比较难以管理
2,结构化搜索 vs 全文搜索
- 结构化搜索: 通常查询具有固有结构的数据,答案要么是肯定的,要么是否定的(即便是类似正则匹配这样的结构化搜索,正则表达式匹配数据也是确定的),数据要么属于查询结果集合,要么不属于。
- 全文搜索: 通常查询全文字段/文档的所有内容,答案返回的是一系列可能的数据,数据有一定概率属于结果集合。
到这里,为什么需要使用 ES 进行搜索的答案就很明确了:对于非结构化文本(比如评论内容),传统的结构化搜索难以满足需求,于是就会使用 ES 进行全文搜索。当然 ES 不仅可以进行全文搜索,也可以进行一部分的结构化搜索,更加扩大了他的应用范围。对于数据量巨大的情景,有公司会使用 ES 代替传统的 MySQL 管理数据。
ES 基本概念介绍
本小结主要是介绍 ES 的一些基本概念,目的是方便之前没有了解过 ES 的同学可以理解这次分享所介绍的内容。
1,ES 存储模型
ES 在设计存储模型时,考虑了大家从关系型数据库转换肯能带来的困难,于是设计了 Index、Type、Document、Field 分别于对应传统关系型数据库(比如 MySQL) 的 Database、Table、Row、Column。 注意: ES 存储时,并没有 Type 的概念,同一个Index 里的 Type 会拍平存储,只是方便理解才会对使用者提供这样一个抽象。由于Type 的存在会带来一些问题,在后续的版本里会逐步移除。
2,ES 与 Lucene
ES 底层基于 Lucene 开发,Lucene作为其核心来实现索引和搜索的功能。我们虽然讲的是 ES,但很大一部分内容是 Lucene 的实现。
相关文章
- 利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍
- ES DSL查询
- 黑产团伙正在利用 ES 未授权访问漏洞实施勒索
- 【ES三周年】轻量级的搜索引擎MeiliSearch
- ES系列三、基本知识准备
- ES 简单操作指令
- 【ES三周年】海量笔记 | 在云上,如何搭建属于自己的全文搜索引擎 Web应用-个人站点
- 【ES三周年】- Elasticsearch文档数据的增删改查
- 【ES三周年】- Elasticsearch索引的创建、查询和删除
- [ES三周年]Springboot 实现 ES-SQL 的流程
- [ES三周年]PostgreSQL数据的存储基础知识
- IOS – OPenGL ES 设置图像亮度 GPUImageBrightnessFilter
- 【ES三周年】腾讯云Elasticsearch Service基础知识,进阶使用以及优化方式
- ES集群license过期current license is non-compliant for [security]
- IOS – OpenGL ES 同心圆像素化马赛克效果 GPUImagePolarPixel
- 【ES三周年】ES数据索引和查询优化的技术总结
- Heart ES-19:专为城市间清洁旅行而打造的电动飞机
- 比较Redis与ES在查询方面的优劣(查询放redis还是es)
- 使用ES查询Oracle新方法进行数据挖掘(es查询oracle)
- 借助ES技术可靠地迁移数据至Oracle(es 数据到oracle)
- ES与Oracle数据库高效协同缔造数据之美(es和oracle数据库)
- ES与Oracle数据同步技术研究(es oracle 同步)