Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎. 特点:
- 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
- 实时分析的分布式搜索引擎。
- 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:
{
"name" : "John",
"sex" : "Male",
"age" : 25,
"birthDate": "1990/05/01",
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
Elasticsearch:index --> type --> doc --> field
MySQL: 数据库 --> 数据表 --> 行 --> 列
基本概念:
索引(index):存储数据的逻辑命名空间,可拥有多个副本
文档(doc):存储的格式是文档-JSON对象,包含数据由键值对构成
类型(type):一个文档类型代表一类相似的文档,类型由两个组成部分:①名字(例如:一篇博客)②字段的数据类型和Lucene数据类型映射关系
映射:文档生成索引的解析过程
节点:运行在单个ES服务实例称为节点,分三类:数据节点,主节点,客户端节点
集群:多个协同工作的ES节点统称为集群
分片:存储在一个或多个节点之间的容器
副本:为支持高可用而保存的分片中的另一份备份数据
Elasticsearch:index=> type=> doc=> field
关系数据库: 数据库=>表=>行=>列
在 5.X 版本中,一个 index 下可以创建多个 type;
在 6.X 版本中,一个 index 下只能存在一个 type;
在 7.X 版本中,直接去除了 type 的概念,不会有type出现。