上一部分,我们讲解了 ES 的一些基本概念和应用场景,以及如何在本机搭建一个 ELK 测试环境。现在这篇文章带你了解 ES 当中一些基本术语以及相关的工作原理。
基本的概念术语
- node(节点)
ES 的一个运行实例,存储了部分文档数据,属于集群的一部分。 - Cluster(集群)
一个或者多个节点的集合,这些节点将共同拥有完整的数据,并跨节点提供联合搜索和分析功能。 - Index(索引)
具有某些相似特性的文档的集合。 - Document(文档)
数据以文档的形式存储在 ES 当中,以 JSON 表示。 - Shard(分片)
一个索引可以水平切分为多个分片,每个分片也相当于一个“索引”,即:一个分片当中存储一部分文档,多个分片可以分布在集群的不同节点上。这样做的优点是实现大数据的存储和分析,单个节点存储的容量有限,可以将数据存储分布到多个节点当中,可以跨分片并行操作,从而提高性能和吞吐量。 - Replica(副本)
创建多个分片副本,副本是分片数据的拷贝,当一个节点服务挂掉不可用或者数据丢失,副本的节点依旧可以提供服务,保证高可用性。
工作原理
为什么 ES 可以快速的搜索到文档呢?因为它使用了倒排索引(inverted index),ES 在存储文档时会通过一定的分析算法将Text类型的字段值进行分词,在分词和文档建立映射关系,这样,便可以通过分词快速定位到相关的文档。
reference:
- https://www.knowi.com/blog/what-is-elastic-search/
- https://www.elastic.co/guide/en/elasticsearch/reference/6.0/getting-started.html
- https://github.com/LisaHJung/Beginners-Crash-Course-to-Elastic-Stack-Series-Table-of-Contents