elasticsearch中的概念简述

Near Realtime(NRT)

Elasticsearch接近实时。从为一个文档建立索引到可被搜索,正常情况下有1秒延迟。

Cluster

一个集群有一个唯一的名字,默认是“elasticsearch”。这个名字很重要,因为一个node仅仅能加入一个集群。

Node

默认,node在启动时被随机分配一个名字,当然也可以自定义。可以配置node加入一个指定名字的cluster。每一个节点默认加入名为"elasticsearch"的集群。一个集群可以很多节点,也可以只有一个。

Index

index是具有相似特性的document的集合(类似数据库)。每一个index被一个名字唯一标识(必须小写)。这个名字会在indexing、search、update和delete操作中使用。

Type

在一个index内,可以定义一个或多个types。Type是对index的划分(完全取决你,类似数据中的表)。

Document

document是信息被索引的基本单元(类似数据库中行)。在index/type内部,可存储许多ocument

Shards&Replicas

elasticsearch的index支持分片功能。创建一个index时,你可以设置分片的数量,每个分片本质上是完全独立的“index”,可以被存储到集群中的任意node上。

进行分片的主要原因:

  • 进行水平扩展

  • 方便进行分发和并行化操作,提升性能

分片分发的原理以及如何进行聚合完全由elasticsearch进行控制,对用户是透明。

在生产环境中,系统出出故障要作为一种正常状态处理。因此为应对shard/node不知某种原因造成的不可用情况,建立故障转移机制是必须的。因此Elasticsearch为index的shard建立了一个或多个副本。

副本是很重要的

  • 提供高可用性,为应为shard/node的失效。分片副本不应该和主分片在同一个node上。

  • 提升搜索能力,应为可以在所有的副本上并行执行。

简而言之,一个index可以被分隔成多个分片或0个。一旦被复制,每一个shards有主分片(复制开始的地方)和分片副本(主分片的副本)。分片和副本的数量可以在index被创建时进行配置,之后可以动态修改副本的数量,但不能修改分片的数量。默认,每一个index被分成5个主分片和一个副本(每个分片),这意味着,如果你的集群中至少有两个节点(主分片和分片副本不应在同一个node上),你的index将会有10个分片(5个主分片和另外5个复制分片)。

一个elasticsearch分片是一个Lucene的Index,在一个Lucene的index中document最大不能超过Integer.Max_Value-128。

原文:Basic Concepts

posted @ 2015-11-13 22:52  senki  阅读(371)  评论(0编辑  收藏  举报