前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ES三周年]理解 ES 查询机制

[ES三周年]理解 ES 查询机制

原创
作者头像
宇宙无敌暴龙战士之心悦大王
修改2023-03-08 20:49:20
1.5K0
修改2023-03-08 20:49:20
举报
文章被收录于专栏:kwaikwai

为什么需要使用 ES 进行搜索

ES除了拥有索引上的优势,最重要的还是数据的结构,这都是ES为什么效率高,会使用它的原因。

1,结构化数据 VS 非结构化数据

  • 结构化数据: 也称作行数据,关系型数据库进行存储和管理,是由二维表结构来逻辑表达和实现(可以使用行、列来表现)的数据,严格地遵循数据格式与长度规范。
  • 非结构化数据: 又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、word文档,邮件,各类报表、图片和音频、视频信息等。

其他的不同之处还有: 结构化数据往往占用的空间较小,占企业数据的 20% 左右,容易管理。 非结构化数据通常占用更多的存储空间,约占企业数据的 80% 左右,比较难以管理

结构化数据 VS 非结构化数据
结构化数据 VS 非结构化数据

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 的存在会带来一些问题,在后续的版本里会逐步移除。

ES和SQL Database的对比
ES和SQL Database的对比

2,ES 与 Lucene

ES 底层基于 Lucene 开发,Lucene作为其核心来实现索引搜索的功能。我们虽然讲的是 ES,但很大一部分内容是 Lucene 的实现。​

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要使用 ES 进行搜索
    • 2,结构化搜索 vs 全文搜索
    • ES 基本概念介绍
      • 1,ES 存储模型
        • 2,ES 与 Lucene
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档