简述: Elastic Search 是一个高度可扩展开源的全文搜索引擎,它的搜索几乎是实时的。使用 ES 作为搜索引擎,可以为复杂搜索功能的需求提供解决方案。
ES 的几大特性
NRT(近实时): 从添加数据到能被搜索到只有短暂的延迟。
集群: 可以将多台 ES 服务器作为集群使用,可以在任何一台节点上进行搜索。
节点: 集群中的单个 es 服务器,存储数据,并且参与集群的索引和搜索功能。
索引: 具有相似特性的文档集合。类似于 Mysql 的 database。单个集群可以有任意多个索引。
类型: 早期版本 es 允许一个索引有多个类型,但是以后版本将不允许,并且未来会删除类型。
文档: 文档是可被索引的基础信息单元。
分片:
索引可能存储大量数据,这些数据可能会超出单个节点的硬件限制,或者速度太慢,无法单独满足单个节点的搜索请求。es 通过分片来解决这个问题,在创建索引时,只需要定义所需碎片的数量。每个分片本身就是一个完全功能性和独立的索引,可以托管在集群中的任何节点上。
分片有助于水平拆分缩小容量,同时允许跨分片并行操作,提高吞吐量。
如何分配分片以及如何将文档聚合到搜索结果的机制对用户是透明的。
副本:
为了避免网络和单点故障,允许将索引分片复制出多个副本分片,以便进行故障转移。
副本可以提高系统可用性,同时也能提高吞吐量
默认情况下,ES 中的每个索引都分配一个主分片和一个副本。
每个 ElasticSearch 分片都是一个 Lucene 索引。
引用: