elasticsearch基本概念
NRT(近实时搜索)
Elasticsearch是一个NRT平台。这意味着当你索引一个文件时,在细微的延迟(通常1s)之后,该文件才能被搜索到。
Cluster(集群)
cluster是在所有节点中保存全部数据且提供联合索引和搜索功能的一个或多个节点(服务器)的集合。
每个cluster有唯一的名称,默认为”elasticsearch”。该名称很重要,因为如果节点通过cluster名称加入cluster,那么该节点就只能成为该cluster的一部分。确保在不同环境中不重复使用相同的cluster名称,除非节点加入了错误的cluster。
举例,对development、stage和production集群分别使用logging-dev、logging-stage和logging-prod。
注意,cluster可以只配置一个节点。而且,你可能也会有多个独立的clusters,每个cluster都有它自己的唯一的名称。
指定cluster名称命令
./elasticsearch -- cluster.name my_cluster_name
Node(节点)
一个node是一个server,是cluster的一部分,它存储数据且参与cluster的索引和查询功能。和cluster一样,每个节点都有自己的名称,默认在启动时赋予一个随机的人名。如果你不想要默认的名称,可以自定义名称。该名称对cluster管理很有用,特别是当你想确认哪个server对应哪个节点时。
一个node可以配置指定cluster名称加入该cluster。默认,每个节点加入名为”elasticsearch”的cluster。 
一个cluster可以包含任意数量的node。而且,如果没有其他node运行,启动一个node会默认形成一个单节点cluster,名为”elasticsearch”。
指定node名称命令
./elasticsearch--node.namemy_node_name
Index(索引)
index是具有相似特征的文档集合。例如,你可以有顾客数据的index、商品种类的index和订单数据的index。 
每个index都有唯一的名称(必须小写),当执行索引、搜索、更新和删除操作时都需要根据该名称找到对应的index。
一个cluster可以包含任意数量的index。
Type(类型)
在一个index中,可以定义一个或多个type。type是index的逻辑分类。
通常,type拥有一组通用field的文档集合。举例,你运行一个博客平台,把全部数据存储在一个index中。在这个index中,你可以为用户数据定义一个type,为博客数据定义一个type,为评论数据定义一个type。
Document(文档)
document是索引的基本单元信息。举例,你有一个客户的document、一个商品的document和一个订单的document。该document用JSON表示。
一个index/type中,可以包含任意多的document。注意,虽然document物理上存在index中,document实际上必须被分配到index中的type上。
Shards & Replicas(分片和副本)
一个index可以存储数量超出硬件限制的数据。举例,一个index包含10亿文档,占据1TB硬盘空间,就会导致无法放在单个节点硬盘上或者响应request太慢。
为了解决这个问题,Elasticsearch提供了将索引分片的技术,称为shard。当创建一个index,可以指定shard的数量。每个shard内部都是全功能而且相互独立的”index”,可以放在cluster上的任意node上。
Sharding重要的原因:
- 允许横向扩展容量
 - 分布式并行操作shard(可能在多个node上),因而提高性能
 
分片是如何分布、文档是如何聚合回搜索结果的机制完全由Elasticsearch管理,对用户透明。
在网络/云环境中,故障是很常见的,比如一个shard/node宕了,因而容错机制非常有效,也是被推荐的。为此,Elasticsearch允许创建index的shard的一个或多个副本,称为replica。
Replication重要的原因:
- 提供高可用性,以防shard/node失效。注意,一个replica shard绝对不能分配到它原先所在node(即创建副本的原本所在的node)。
 - 允许扩展搜索容量,因为搜索可以并行在所有replica上执行
 
总结一下,每个index可以被分为多个shard。一个index也可以被复制0份或者多份。一旦复制过,每个index将有主shard(创建副本的原本所在的shard)和replica shard(主shard的副本)。shard和replica的数量可以在index创建的时候自定义。index创建之后,你可以动态改变replica的数量,但是不能改变shard的数量。
默认的,每个index被分配5个主shard和1个replica,这意味着,如果你在cluster中有至少两个节点,每个index将有10个shard,分别是5个主shard和另外5个replica shard(1个完整的replica)。
elasticsearch基本概念的更多相关文章
- ElasticSearch 核心概念
		
ElasticSearch核心概念-Cluster ElasticSearch核心概念-shards ElasticSearch核心概念-replicas ElasticSearch核心概念-reco ...
 - ElasticSearch 全文检索— ElasticSearch 核心概念
		
ElasticSearch核心概念-Cluster 1)代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字 ...
 - ELK 学习笔记之 elasticsearch基本概念和CRUD
		
elasticsearch基本概念和CRUD: 基本概念: CRUD: 创建索引: curl -XPUT 'http://192.168.1.151:9200/library/' -d '{" ...
 - Elasticsearch入门教程(二):Elasticsearch核心概念
		
原文:Elasticsearch入门教程(二):Elasticsearch核心概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...
 - 【ElasticSearch】概念
		
小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 对小史面试情况感兴趣的同学可以观看面试现场系列. 随着央视诗词大会的热播,小史开始对诗词感兴趣 ...
 - Elasticsearch基本概念和使用
		
Elasticsearch基本概念和使用 1.操作索引 1.1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的. 对比关系: 索引( ...
 - Elasticsearch核心概念
		
Elasticsearch 核心概念 Cluster 代表一个集群, 集群中有多个节点, 其中一个为主节点, 该节点可以通过选举产生.(主从节点只针对于集群内部) 去中心化: 对于集群外来说无中心节点 ...
 - lucene和ElasticSearch基本概念
		
lucene基本概念 索引(Index) 对应一个倒排表,一个检索的基本单位.在lucene中就对应一个目录. lucene基本概念 段(Segment) 一个索引可以包含多个段,段与段之间是独立的, ...
 - Elasticsearch基础概念理解
		
熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程.一般情况下,一台机器运行在一台机器上. 集群(Cluster): 好几个有相同集群名称 ...
 - ElasticSearch 基本概念
		
Elasticsearch是一个接近实时的搜索平台,就是说从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟,通常是一秒钟 集群 一个集群通常有一个或多个elasticsearch节点组成,给这些 ...
 
随机推荐
- Android 实现用户列表信息的功能,然后选择删除幻灯片删除功能
			
在项目开发过程中.经常须要对用户列表的信息进行删除的操作.Android中经常使用的删除操作方式有两种 .一种就是类似微信的滑动出现删除button方式,另一种是通过CheckBox进行选择.然后通过 ...
 - J2EE总结(2)——Servlet/JSP
			
Servlet/JSP Servlet定义:部署在java的Webserver上的组件.整个java服务端程序都构建在Servlet之上,以多线程方式提 供服务,具有效率高.可扩展,可移植的特点. J ...
 - 代码审查 (Google牛人谈Code Review)
			
代码审查 (Google牛人谈Code Review) 在上一篇博客里我暗示自己将不在为Google工作. 我还没有决定好去哪儿-有几个非常不错的工作机会让我选择.鉴于这段时间内我不受雇于任何公司,我 ...
 - DataGridView的使用和批量修改
			
DataGridView的属性:AllowUserToAddRows:如果为true允许用户添加行,false不允许用户添加行ReadOnly:true表示只读.不能修改单元格中的值,false可以对 ...
 - 分页存储过程实现-SqlServer
			
一个通用的分页存储过程实现-SqlServer(附上sql源码,一键执行即刻搭建运行环境) 使用前提 查询表必须有ID字段,且该字段不能重复,建议为自增主键 背景 如果使用ADO.NET进行开发,在查 ...
 - Webapi帮助文档
			
生成自己的Webapi帮助文档(一) 最近Webapi接口的开发刚刚进入尾声,随之而来的是让用户知道接口的详细参数信息,看过淘宝的接口文档,但网上没找到他的实现方式 虽然新建Webapi时C#也会给你 ...
 - [google面试CTCI] 2-1.移除链表中重复元素
			
[链表] Q:Write code to remove duplicates from an unsorted linked list FOLLOW UP How would yo ...
 - [google面试CTCI] 1-6.图像旋转问题
			
[字符串与数组] Q:Given an image represented by an NxN matrix, where each pixel in the image is 4 bytes, wr ...
 - 基于SUSE Linux做NFS文件挂载
			
linux文件挂载其实和windows文件共享原理差不多,由主机配置一个共享目录,客户端机器可以通过网络访问该共享目录. 下面以SUSE11为例子,简要描述下NFS文件挂载过程: 一.主机端(主机IP ...
 - springmvc国际化 基于浏览器语言的国际化配置
			
当前标签: springmvc springmvc国际化 基于浏览器语言的国际化配置 苏若年 2013-10-09 13:03 阅读:305 评论:0 SpringMVC中应用Ajax异步通讯 ...