elasticsearch初步学习

1.什么是elasticsearch?

elastic是一款开源,可扩展全文搜索和分析的一款构建在lucene之上的框架。它允许我们实时快速的存储,搜索,分析大容量数据。github的搜索好像就是用elasticsearch做的。

2.elasticsearch的一些基本概念

cluster:

1.代表一个集群,集群中有多个节点(每个节点上都是相同的数据)
2.默认cluster名字是elasticsearch,要注意的是一个节点只能属于一个cluster,

而区分cluster就是用名字来区分,因此不通的cluster名字不能相同。

官网下载的elasticsearch-xx文件夹下的data目录下文件夹名字就是cluster的名字。

node:

1.它是cluster的一部分,用来存储数据,并提供集群的索引和搜索功能。
2.node都会有一个名字,启动时默认是随机生成的名字,但是我们可以自己指定名称。

一个node节点可以配置加到cluster上,默认是加入到elasticsearch这个cluster上面。
3.一般在一个cluster上,我们自己可以配置多个node,如果要配置多个node,

那么可以再启用elasticsearch服务来启动一个进程,

要注意的是新启动的elasticsearch里面配置文件elasticsearch.ymal配置的cluster.name必须一样

在data/elasticsearch下可以发现有nodes文件夹,存在文件夹0,这个文件夹所说的节点.

index:

索引是document的一个集合.

比如我们有一些客户的数据索引,另外还有一个产品的数据索引和订单的数据索引。

一个索引必须用小写来指定名字,名字对于索引,搜索,更新,删除操作是很重要的。

如果很难理解那么我们可以认为这个就是数据库。(如果创建过自己index,比如叫firsttime,

那么在elasticsearch-xx/data/elasticsearch/0/indices下可以发现有firsttime文件夹,

这个文件夹名字就是对应index名字,里面存放了索引数据)

type:

对于type就是对index的更细的一个划分。我们可以基于index上定义更多的type。

既然我们能把index理解成数据库,那么type就是数据库中的表了。

document:

我们可以把它理解成数据库表的一条条数据(row)。这个是被索引的最基本单元。

shards:

1.分片,如果我们的索引数据很大,超出了硬件存放的单个文件限制(linux下就有限制),

那么会发生问题的,而且也会影响搜索请求的速度。因此elasticsearch就引入了这个shards技术了。
2.当我们创建一个索引,我们能简单的定义很多个分片,

每个分片都有自己搜索,更新,删除等和index一样全部功能的一小块。

分片shards的好处是可以让我们水平分割和扩展我们存放的内容索引,

同时还可以让我们分发和(在多个节点可能)并行跨碎片操作从而提高性能/吞吐量。
3.可以发现在elasticsearch-xx/data/elasticsearch/0/indices/firsttime下

有默认5个shared从0-4

replicas:

 1.当某个节点某个分片损坏或丢失时可以从副本中恢复。
2.提高es的查询效率,es会自动对搜索请求进行负载均衡。replicas可以设置为0个或者多个。

一旦设置replicas,那么每个shards就会有一个主shards,而replica shards就是对主shards的拷贝

shards和replicas数量在索引创建时生成。当索引index生成后,我们能够动态改变replicas的数量,

但是不能改变shards的数量。
 如果我们在cluster上面有两个节点nodes,比如分片0(有两个,每个节点各有一个分片0),

那么会随机在其中一个节点上设置一个为主分片,另外一个就是replica 分片了,

这样我们将会有5个主要的shards(在主node上面)和另外5个replica shards(在另外一个node上)

总共有10个shards. 

假如有3个nodes,那么会从所有nodes上选出0的一个主分片,还有1-4的每个主分片

总共还是5个主分片,其他的10个就是replica 分片了.这样应该理解了吧.
时间: 2024-10-28 16:26:33

elasticsearch初步学习的相关文章

LinQ的初步学习与总结

嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单啦,下面就全面的总结一下LinQ的其中一部分,LinQ有三部分:LinQ TO Object:LinQ TO SQL ;LinQ TO XML.而在这里我先来总结一下LinQ TO Object的学习吧 一.初步认识LinQ to Object static void Main(string[] a

Jquery Easy UI初步学习(二)datagrid的使用

第一篇学的是做一个管理的外框,接着就是数据datagrid绑定了,这里我用asp.net mvc3来做的,主要就是熟悉属性.方法. 打开easyui的demo 就可以看到如下一段代码: 和上篇一样class="easyui-datagrid", data-options="...",这是一样的,其他我在网上查了查,并做了整理 DataGrid 属性 参数名 类型 描述 默认值 title string Datagrid面板的标题 null iconCls strin

Elasticsearch的学习笔记

在介绍Elasticsearch的用法之前先讲讲为什么要用它吧.首先学习搜索引擎,肯定不可避免的都听过lucene,solr和Elasticsearch都是基于它的.spinx文章很多,但是数据库的入侵性太强(插件模式).Elasticsearch是当下最流行的分布式搜索引擎之一.solr也稍微玩过,文章也多.同时也希望能通过Elasticsearch进一步学习完善自己对于分布式的学习.更深入的同学可以考虑开始学习ELK(Elasticsearch, Logstash, Kibana). 推荐:

初步学习C++:C++的基本概念

开始学习C++,先从最基本的概念开始,让自己有一个系统的知识概念. 1.对象: 在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体.对象可以认为是:数据+操作(对象所能完成的操作表示它的动态行为,也成为方法). 2.类: 在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,类是对具有相同数据结构和相同操作的一类对象的描述. 3.消息: 在面向对象程序设计中,一个对象向另一个对象发出的请求被称为"消息".当对象接收到发向它的

Java深度历险(三) Maven初步学习

这几天接触这个词,很多遍了,只是浅显的体会到它在GXPT中的好处,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在gxpt中的体现 1. 父子关系 一个多模块项目通过一个父POM 引用一个或多个子模块来定义. a. 在父目录中分别创建子项目 b. 父项目,通过以下配置,将子项目关联: 如下: <span style="font-size:18px;"

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require('fs'); 2 var tel = [ 3 "1/2/4/6/a.tpl.html", 4 "1/2/4/7/9/c.tpl.html", 5 "1/3/5/8/b.tpl.html"]; 6 var demo = function (mulu)

状态保持以及AJAX的初步学习

嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项目期,今天下午学习了ajax,这个使用javascript写起来还是蛮麻烦的,嘿嘿,但是使用jquery实现是非常的简单的,不知道是不是由于我刚接触的原因,下面来总结一下今天学习的内容,感觉今天学习的还是很有必要详细总结的,因为在以后的项目中还是经常会使用的. 一.状态保持 1.cookie的添加与

Jquery Easy UI初步学习(三)数据增删改

第二篇只是学了加载用datagrid加载数据,数据的增删改还没有做,今天主要是解决这个问题了. 在做增删改前需要弹出对应窗口,这就需要了解一下EasyUi的弹窗控件. 摘自:http://philoo.cnblogs.com/ 我的理解,就是panel有的属性Window.dialog都有,同时保留自己的扩展属性方法 , 所以主要展示pannel的属性. Pannel 属性 名称 类型 说明 默认值 title string 显示在Panel头部的标题文字. null iconCls strin

实验1 ASP.NET MVC 4 初步学习

1.添加控制器 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller 2.添加视图 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view 3.添加模型 http://www.asp.net/mvc/tutorials/mvc-4/getting-sta