基本概念

基本概念:

有几个概念 是Elasticsearch的核心,了解哪些内容从一开始会极大的帮助你简化学习过程:

Near Realtime(NRT):

Elasticsearch  是一个近乎实时搜索的平台,这意味着有一个轻微的延迟(通常是1秒)从你索引一个文档

直到它变的可检索。

Cluster:

一个集群是一个或者多个节点的集合,共同持有你整个数据和提供联合索引和搜索功能跨越所有的节点。

一个集群是由一个唯一的名称默认是elasticsearch

这个名字是重要的因为一个节点只能是一个集群的一部分,

如果节点是是创建通过这个名字加入集群。


确保 你不重用相当的集群名字在不同的环境,

否则你可能最终会让节点加入到错误的集群。

比如 你可以使用 logging-dev, logging-stage, and logging-prod  对于开发,

工作台和生产环境。


节点:

一个节点是一个简单的server, 是你集群的一部分,存储你的数据,参与集群的索引和搜索能力。

就像一个集群, 一个节点是通过一个名字定义 默认是一个随机的UUID

一个节点可以配置加入到一个特定的集群通过集群名字。

这意味着你启动一些节点在你的网络上假设你可以互相发现。

他们会自动形成和产生一个单独的集群名字elasticsearch

在一个单独的集群, 你可以有很多你需要的节点。此外,

如果没有其他 Elasticsearch nodes 当前运行在你的网络,

启动一个单独的节点默认形成一个新的单个节点cluster命名为elasticsearch

Index:

一个索引是具有相似特征的文档集合。 例如,你可以有一个索引用于客户数据,

另外一个索引用于产品目录,以及另外一个索引用于订单数据。

一个索引是由名称标示(必须小写),这个名字是用于索引当执行索引,搜索,更新和删除操作


在单个集群中,可以根据需要定义多个索引:


类型:

在索引中,你可以定义一个或者多个类型。

一个类型是一个逻辑分类/分区 其语义是完全取决于你。

通常,一个类型是定义用于文档有一组相同的公共字段。

比如,你运行一个博客平台存储所有你的数据在一个单个索引。

在这个索引,如果你定义一个类型用于用户数据,另外的类型用于blog 数据,

另外的类型用于解释数据等。

Document 文档:

一个文档是一个被索引信息的基本单元。例如,你可以有一个文档用于一个单独的客户,

另外的文档用于一个单独的产品

文档是JSON格式

在一个Index/type,你可以存储很多你需要的文档。

注意尽管一个文档物理驻留在一个索引里,一个文档实际上必须是被索引/分配到一个类型在一个索引里


shards 和replicas  分片和副本:

一个索引可以潜在的存储大量的数据,可以超过单个节点的硬件限制。

比如,10亿文档的一个单独索引可以占据1TB的磁盘空间可能不能安放在一个单独的节点

或者可能会很慢来供应请求从一个单独的节点。

为了解决这个问题,Elasticsearch  提供能力来细分你的索引到多份称为shards(分片)。

当你创建一个索引,你可以简单的定义shards 的数量。

每个shard  本身是一个全功能的独立的索引可以在集群中的任何节点上。

Sharding  分片有两个重要的原因:

1. 它允许你水平的拆分/衡量你的内容卷:

2. 它允许你分散和并行操作shards(可能到多个节点上),因此增加性能/吞吐量。


一个分片的技术是分散和它的文档时聚合到搜索请求是完全通过Elasticsearch 管理

传输到用户:

在一个网络/云 环境  失败可以是预期的在任何时候,

它是非常有用的 高度推荐的有一个失败机制 万一一个shard/node 有时候下线或者消失。

为此,Elasticsearch 允许你让一个或者多个索引的shards 的拷贝被称为replica shards, or replicas for short.



复制是重要的对于两个主要的原因:

1.它提供了高可能的万一一个shard/node fails. 对于这个原因,

它是重要的注意一个replica shard 是不要分配在相同的节点作为原始的shard


2. 它允许你扩展你的搜索卷/吞吐量 因为搜索可以被执行在所有的副本上。

总之,每个索引可以被分割到多个shards。

一个索引可以被复制0个(意味着没有副本)或者 更多。

一旦被复制,每个索引会有多个shards (原始的shards被复制的)和复制分片

shards和replicas 的数量可以在每个索引创建的时候。

当索引被创建,你可以改变replicas 的数量 但是你不能改变shards 的数量

默认的,每个索引在Elasticsearch 是被分成5个主shards和一个replica 

这意味着如果你有至少2个节点在你的cluster,你的索引有5个 primary shards 和另外5个 replica shards

每个Elasticsearch shard 是一个Lunce index .

原文地址:https://www.cnblogs.com/hzcya1995/p/13349702.html