ElasticSearch 学习笔记二 基本概念
一、近乎实时
Elasticsearch是一种近乎的搜索平台,从你建立起文档到该文档能够搜索,会有轻微的延迟(通常是一秒)。
二、集群
一个或多个节点(服务器)的集合,这些节点有所有的数据,它提供联合索引并能够交叉搜索。一个集群拥有一个唯一的名称,默认为elasticsearch,这个名称是很重要的,因为一个节点只能属于一个集群,它是通过这个集群的名称来设置的。
在不同的环境里,要确保你的集群名称不重复,否则你的节点可能会加入到错的集群里。
三、节点
一个节点是你集群里的一个单独服务器,它参与集群的索引和搜索功能。节点也是用名称作为标识,可以使用自定义的名称。
一个节点可以通过设置集群的名称而加入这个集群。每个节点默认的集群名称是elasticsearch。一个集群可以有很多节点,也可以只有一个节点。
四、索引
索引是一些有相似特征文档的集合,例如你可以给客户数据、产品目录分别建立索引、也可以再为订单建立索引。一个索引用名称来标识(全部小写), 这个名称会在建立、搜索、修改、删除等操作文档时用到。在一个集群里,可以定义许多索引。
五、类型
在一个索引中,你可以定义一个或多个类型。类型是你索引的逻辑分区。通常类型是为一个有共同字段集合的文档定义的。
六、文档
文档是一个能够被索引的基本单元信息。例如你可以为一个客户建一个文档,为一个产品建一个文档,也可以为一张订单建一个文档。文档的内容用json格式的数据表示。
在一个索引或类型中,你可以存储许多的文档。尽管文档是索引基本组成,但文档必须分配到索引里的类型。
七、分区和副本
一个索引能够存放大量的数据,能超过单个节点的硬件的限制。例如,一个索引有数以万计的文档,它们占了1TB磁盘空间,也许它们不是在一个单独的服务器节点的磁盘上,或许在一个单独的节点上会太慢。
为了解决这个问题,elasticsearch提供了把索引划分成分区的功能。当创建索引时,你可以随意设置分区的数量,每个分区都有完整的功能并能够托管到集群中的任意节点。
分区很重要有两个原因:
1、它允许水平的划分体积和扩展空间
2、它允许你分散和并行操作不同的分区,以增加性能和吞吐量。
分区怎么分布和文档怎么在搜索结果中聚合返回都是完全由Elasticsearch管理的,对于用户来说是容易理解的。
在一个网络或云环境中,在任何时候,错误被预料到是很有用的,并且非常推荐有一个容错机制,以防分区或节点不明原因的离线或消失。为此,Elasticsearch允许你有一个或多个的分区副本,这叫主从分区。
副本很重要有两个主要原因:
1、它有效防止了分区或节点失败。由于这个原因,要特别注意一点,那就是副本分区不能和主分区不能同时指派到同一个节点上。
2、它允许扩展搜索量/吞吐量,因为搜索可以在所有副本并行执行。
总结,每个索引可以分成许多分区。一个索引也可以复制0次或多次。一旦复制,索引就包含主分区和副本分区。在创建索引时,可以定义分区数和副本数,一旦设置好,可以修改副本数,不能修改实际应用中的分区数。
默认地,每个索引有五个主要分区和一个副本,这意味着在集群中至少有两个节点,索引中有五个主要分区和5个副本分区(一个完全的副本),总共10个分区。
浙公网安备 33010602011771号