elasticsearch基本概念

基本概念

elasticsearch有几个核心概念。一开始就能理解这些概念对后面的学习会有极大的帮助。html

近实时(NRT)

Elasticsearch是一个近乎实时的检所平台。意味着从索引一个文档(document)到该文档能够被检索以前会稍有延迟。node

集群

集群指一个或多个节点的集合,它们能够承载所有数据并提供跨全部节点的联合索引和检索。集群名称由统一的名称来标识,默认集群名称为elasticsearch。这个名称很重要,由于节点加入集群,只经过集群名称进行识别。apache

确保在不一样的环境中使用了不一样的集群名称,不然会出现节点加错集群的状况。例如你能够用 logging-devlogging-stage, 和 logging-prod 来区别development、staging和production集群。此外,你能够用各自惟一的集群名称来创建多个互相独立的集群。json

集群内只有单个节点也是能够的。api

节点

节点是集群内的独立server,用来存储数据,在集群内参与索引和检索。和集群相似,一个节点(node)根据节点名称进行区分,节点名称即在启动时分配的一个随机的UUID。若是不想使用默认的,能够定义节点名称。从管理角度来看,该名称很重要。网络

一个节点能够经过配置(配置文件中的)集群名称来加入特定集群。默认,每一个节点都加入一个名叫elasticsearch的集群,这意味着若是在网络中开启了几个节点(假设他们能够发现彼此),它们会自动通知而且加入一个叫elasticsearch的集群。elasticsearch

在单个集群中,节点能够任意多。另外,若是没有节点运行elasticsearch,这次开启一个es节点会造成一个新的单节点集群,该集群名叫elasticsearch。分布式

索引

索引是具备类似特色的文档(documents)的集合。例如,你能够为用户数据建立一个索引,为产品目录建立一个索引,为订单数据建立另外一个索引。索引经过索引名称(必须都是小写字符)来进行区分,当进行索引、检索、更新和删除文档时,涉及到索引名称。ide

在集群中,你能够定义任意多的索引。性能

样式

在一个索引中,你能够定义一种或多种样式。一种样式是索引的逻辑分类、分割。一般,具备共有字段的一组文档定义为一个类型。例如,假设你运行一个博客平台,将全部数据存储为一个索引。在这个索引中,你能够给用户数据定义一个样式,能够为博客数据定义一个样式,能够为评论数据定义一个样式。

文档

文档是能够索引的基本信息单元。例如,若是你能够为一个客户建立一个文档,为一个产品建立一个文档,为一个订单建立一个索引。文档以json格式呈现,一种无处不在的互联网数据交换格式。

在一个索引/样式中,你能够存储任意多的文档。注意虽然文档存在于索引中,它必须被索引/分配到索引内的一种样式中。

 

分片和副本

一个索引能够存储超出单个节点硬件限制的数据。例如,占用了1TB硬件空间的十亿条文档的索引可能并不适合放在一个节点上,或者会出现检索请求过慢的问题。

为了解决这个问题,Elasticsearch提供了分片,它能够将一个索引划分为多片。当你建立了一个索引,你能够定义你指望的分片数量。每一片都是全功能独立的索引,它能够放在集群内的任意一个节点上。

分片的重要性体如今两个主要的缘由上:

  • 它容许你水平分割内容卷组
  • 你能够分布式地并行地执行操做,增长了性能和吞吐量

分片如何分布,检索如何聚合文档等这些机制都彻底由Elasticsearch管理,对于用户是透明的。

在网络/云环境中,失败无处不在,很是有必要创建一套容错机制,以防出现分片/节点下线或者丢失。为此,Elasticsearch容许用户为索引的多个分片建立一份或多份副本,交错分片副本集,或简称副本。

副本的重要性体如今如下两点:

  • 在分片、节点失效时提供高可用。所以一个分片副本集永远不要位于同一个节点
  • 能够扩展检索卷/吞吐量,由于检索操做能够并行在全部的副本上同时执行

总而言之,每一个索引能够分红多片。一个索引能够复制零次(即没有副本)或屡次。一旦创建副本,每一个索引都会具备主分片(能够用来进行复制副本的分片)和副本分片(主分片的复制)。在索引一建立时能够指定每一个索引的分片个数和副本个数。索引建立好后,你能够动态改变副本的数量,但不能改变分片的数量。

默认状况下,Elasticsearch每一个索引有5个主分片和一个副本集,意味着若是集群中有两个节点,你的索引会有5个主分片和5个副本分片,每一个索引总共是10个分片。

 

Note

每一个Elasticsearch分片是一个Lucence索引。在单个Lucence索引中有文档数存在上限。根据LUCENE-5843

,限制为2,147,483,519个文档。你可使用api_cat/shards检测分片大小。

 

 

https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html#getting-started-shards-and-replicas

相关文章
相关标签/搜索