ES简介
ES是基于Lucene分布式搜索服务,可以存储整个对象或文档
分布式的实时文件存储,每个字段都被索引并可被搜索
分布式的实时分析搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据
与传统数据库的对比:
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
引自:https://www.cnblogs.com/wangzhuxing/p/9404587.html
相关概念
索引文件index:一个拥有几分相似特征的文档的集合,类似于数据库的不同的库
类型type:每一批索引中,document有海量的,不同的document间有可能存在不同数量的相同结构的文档对象,利用type定义这批文档为同一种类型。类似于表格的一行的数据
文档对象document:一个文档是一个可被索引的基础信息单元。类似数据库中的表格的某一行数据记录
字段域field:类似数据库的表格的字段
mapping映射:就是对索引库中索引的字段名及其数据类型进行定义。
集群:一个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能
分片:一个分片本身就是一个完整的搜索引擎。文档存储在分片中,而分片则会被分配到集群中节点中,随着集群的扩大和缩小,es会自动地将分片在节点之间进行迁移,以保证集群能保持一种平衡
副本replica:冗余备份,防止数据丢失
节点:一个节点是你集群中的一个服务器,作为集群的一部分,它存储你的数据,参与集群的索引和搜索功能
master节点:集群中的一个节点会被选为master节点,它将负责管理集群范畴的变更,例如创建或删除索引,添加节点到集群或从集群删除节点。master节点无需参与文档层面的变更和搜索,这意味着仅有一个master节点并不会因流量增长而成为瓶颈。任意一个节点都可以成为 master 节点
data节点:持有数据和倒排索引。默认情况下,每个节点都可以通过设定配置文件elasticsearch.yml中的node.data属性为true(默认)成为数据节点。如果需要一个专门的主节点,应将其node.data属性设置为false
优点
-
部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力,分布式的搜索引擎和数据分析引擎
-
支持横向扩展
-
对海量数据进行近实时的处理
不进步就是退步!!!