ES与关系型数据库相似性对比
RDBMS(以Mysql为例) | Elasitcsearch |
存储引擎 | 不同的数据分布 Setting |
数据库 Schema(Database) | 文档字段类型 Mapping 相当于关系型数据库的表结构 |
数据表 Table | 索引 Index 类型 Type |
数据行 Row | 文档 Document |
数据列(字段) Column | 字段 Fields |
DQL(数据查询) | DSL |
DML(数据操作) | DSL |
ps:7.0以后一个Index只能创建一个Type,并统一命名为 _doc
,相当于一个数据库只能创建一个表
文档
- Es是面向文档的搜索引擎,文档是所有可搜索数据的最小单位,相当于关系型数据库中的一条记录
- 文档以json格式存储,json对象由字段组成对应数据类型有:字符串,数值,布尔值,日期,二进制,范围类型
- 每个文档都有一个Unique ID 你可以自己指定 ID 或者通过Es自动生成
文档元数据
- _index 文档所属索引名
- _type 文档所属类型名
- _id 文档唯一ID
- _source 文档的原始json数据
- _version 文档的版本信息
- _score 相关性打分
- _all 所有字段的整合信息,已废除
索引
文档的容器,一类文档的结合
- Index 体现了逻辑空间的概念:每个索引都有自己的Mapping定义,用于定义包含的文档字段名和字段类型
- Shard 体现了物理空间的概念:索引中的数据分散在Shard上
索引的Mapping和Settings
- Mapping定义文档字段的类型
- Setting定义不同的数据分布
索引的不同语义
- 名词:一个ES集群中,可以创建很多不同的索引
- 动词:保存一个文档到ES的过程也叫索引(indexing)ES中,创建一个倒排索引的过程
- 名词:一个B tree索引,一个倒排索引
相关文章