添加一个index(add an index)

想ES中存储数据,需要index——存储数据的地方,实际上,index就是一个指向若干物理shard的逻辑命名空间。

shard就是更底层的工作单元,每个shard是一个Lucene的实例,每个shard在其控制范围内都是一个完整的搜索引擎。我们的文档被存储,并且被index到shard,但是应用程序是不和shard直接对话的而是和index进行通信。

由于shard是真正储存数据的地方,因此shard表示了ES在你的cluster中是怎么分布数据的。文档被存储在shard中,shard被分配到cluster中的node中。当你的cluster扩展或这收缩,ES将会自动在node自动迁移shard,一次cluster可以自动实现平衡分布。

一个shard可以作为primary shard也可一作为replica shard。每个在你index中的document都仅仅分配到一个primary
shard,因此primaryshard的数量决定了你的index能存储的最大数据量。

然而理论上primary
shard能存储的数据量没有限制,这个显示是在实际运行中得到的。shard能存储的最大数据量完全取决你的使用场景如:硬件的限制,document的复杂度,插入(index)和查询(query)文档(document)的方式和你期望响应的速度。

replica shard就是primary shard的一份拷贝。replica就是primary
shard的数据冗余用来保护数据免受到硬件故障的影响,并且对文档的搜索和检索请求作出相应。

primary shard的数量在一个index创建的时候已经被固定了,但是replica shard的数量在任何时候都是可以改变的。

现在,在一个仅仅包含一个node的空的cluster中创建一个名为“blogs”的index。默认情况下,一个index会被分配5个primary
shard,但是作为例子,这里将会分配3个primary shard和1个replica(为每个primary shard分配一个replica
shard)

{
   "settings":{
      "number_of_shards":3,
      "number_of_replicas":1
   }
}

生成的blogs index将会如下图

有三个primary
shard。检测cluster-health,将会得到如下响应,

{
   "cluster_name":          "elasticsearch",
   "status":                "yellow",
   "timed_out":             false,
   "number_of_nodes":       1,
   "number_of_data_nodes":  1,
   "active_primary_shards":3,
   "active_shards":         3,
   "relocating_shards":     0,
   "initializing_shards":   0,
   "unassigned_shards":     3
}

标记1处的status表示cluster为yellow

标记2处表示还有3个shard没有被分配

cluster的health状态是yellow意味着所有的primary
shard都已经启动了并且正常运行了——这个cluster能提供所有的请求服务了——但是只有若干不是全部的replica
shard被激活。事实上,未被分配的三个shard——他们还没有分配到node下。他们也不存储备份的数据。这时候如果丢失了数据,那就是真的丢失了。

目前,这个cluster已经可以完全实现基础功能了,但是有硬件故障导致的数据丢失的风险。

原文:http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_add_an_index.html

时间: 2024-11-05 13:35:28

添加一个index(add an index)的相关文章

eclips git中的add to Index无效解决

今天在使用eclips git中的add to Index,发现其无效,具体如下 问题描述: 通过export导入一个git java项目 在java工程中新增一个类文件IndicatorCalcTest.java 在eclips中选择该文件,team->add to Index,操作后该文件未显示+号 问题定位: 直接通过命令行进入IndicatorCalcTest.java文件所在目录,命令执行git add IndicatorCalcTest.java,报如下错误 C:\Users\Adm

You can add an index on a column that can have NULL values if you are using the MyISAM, InnoDB, or MEMORY storage engine.

w https://dev.mysql.com/doc/refman/5.7/en/create-index.html MySQL :: MySQL 5.7 Reference Manual :: B.5.4.3 Problems with NULL Valueshttps://dev.mysql.com/doc/refman/5.7/en/problems-with-null.html You can add an index on a column that can have NULL va

Java ArrayList add(int index, E element) example

Simple add() method is used for adding an element at the end of the list however there is another variant of add method which is used for adding an element to the specified index. public void add(int index, Object element) This method adds the elemen

012.Adding a New Field --【添加一个新字段】

Adding a New Field 添加一个新字段 2016-10-14 3 分钟阅读时长 作者 By Rick Anderson In this section you'll use Entity Framework Code First Migrations to add a new field to the model and migrate that change to the database. 在本节,我们将用EF的Code First 增加一个新字段并变更到数据库中. When

【MVC5】3.添加一个视图

在这一节中你将修改HelloWorldController类使用的视图模板文件整洁的封装生成HTML响应客户端的过程. 使用"视图引擎"创建一个视图模板文件.基于Razor视图模板有.cshtml文件扩展名,并提供使用C #创建HTML输出一种优雅的方式.剃刀将字符和按键需要编写一个视图模板时的数量,并能够快速.灵活的工作流程. 当前索引方法返回一个字符串,该字符串在控制器类中硬编码的消息.更改索引方法返回一个视图对象,如下面的代码所示: public ActionResult Ind

elasticsearch index 之 create index(二)

创建索引需要创建索引并且更新集群index matedata,这一过程在MetaDataCreateIndexService的createIndex方法中完成.这里会提交一个高优先级,AckedClusterStateUpdateTask类型的task.索引创建需要即时得到反馈,异常这个task需要返回,会超时,而且这个任务的优先级也非常高.下面具体看一下它的execute方法,这个方法会在master执行任务时调用,这个方法非常长,主要完成以下三个功能:更新合并request,template

在唯一密钥属性“value”设置为“Default.aspx”时,无法添加类型为“add”的重复集合项

环境:windows server 2012  asp.net 找到网站目录:wwwroot ,打开web.config文件,在 在<files>与</files>之间加入代码 添加如下: <clear /> <add value="index.php" /> <add value="Default.htm" /> <add value="index.htm" /> <

【翻译转载】【官方教程】Asp.Net MVC4入门指南(3):添加一个视图

3. 添加一个视图 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view · 译文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/06/2756711.html Asp.Net MVC4入门指南(3):添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,

【翻译转载】【官方教程】Asp.Net MVC4入门指南(2):添加一个控制器

2. 添加一个控制器 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller · 译文地址:http://www.cnblogs.com/powertoolsteam/archive/2012/11/02/2751015.html Asp.Net MVC4入门指南(2):添加一个控制器 MVC代表: 模型-视图-控制器 .MVC是一个架构良好并且易于测试和

HTML&amp;CSS基础学习笔记1.28-给网页添加一个css样式

CSS是什么? 当HTML配合CSS一起使用时,我们发现页面变得好看了很多.那么CSS到底是什么呢? CSS指层叠样式表 (Cascading Style Sheets),它主要是用于定义HTML标签在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 我们可以这么说,CSS是网页的衣服,它可以用来装饰网页. 那么接下来我们就来试试css吧~ 给网页添加一个CSS样式 尝试给<p>标签直接加了一个[style]属性,并且给标签添加了一个字体颜色.这种在标签上直接添加样式的形式,我们称这种关联方