ElasticSearch简单入门-阿里云开发者社区

开发者社区> bucxrptf3dlr2> 正文

ElasticSearch简单入门

简介: ElasticSearch简单入门
+关注继续查看

1.全⽂检索流程

image.png

2.ElasticSearch相关概念

1.索引 index

⼀个索引就是⼀个拥有⼏分相似特征的⽂档的集合。⽐如说,你可以有⼀个客户数据的索引,另⼀个产品⽬录的索引,还有⼀个订单数据的索引。⼀个索引由⼀个名字来标识(必须全部是⼩写字母的),并且当我们要对对应于这个索引中的⽂档进⾏索引、搜索、更新和删除的时候,都要使⽤到这个名字。在⼀个集群中,可以定义任意多的索引。

2.类型 type

在⼀个索引中,你可以定义⼀种或多种类型。⼀个类型是你的索引的⼀个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有⼀组共同字段的⽂档定义⼀个类型。⽐如说,我们假设你运营⼀个博客平台并且将你所有的数据存储到⼀个索引中。在这个索引中,你可以为⽤户数据定义⼀个类型,为博客数据定义另⼀个类型,当然,也可以为评论数据定义另⼀个类型。

3.字段Field

相当于是数据表的字段,对⽂档数据根据不同属性进⾏的分类标识

4.映射 mapping

mapping是处理数据的⽅式和规则⽅⾯做⼀些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射⾥⾯可以设置的,其它就是处理es⾥⾯数据的⼀些使⽤规则设置也叫做映射, 按着最优规则处理数据对性能提⾼很⼤,因此才需要建⽴映射,并且需要思考如何建⽴映射才能对性能更好。

5.⽂档 document

⼀个⽂档是⼀个可被索引的基础信息单元。⽐如,你可以拥有某⼀个客户的⽂档,某⼀个产品的⼀个⽂档,当然,也可以拥有某个订单的⼀个⽂档。⽂档以JSONJavascript Object Notation)格式来表⽰, ⽽JSON是⼀个到处存在的互联⽹数据交互格式。在⼀个index/type⾥⾯,你可以存储任意多的⽂档。注意,尽管⼀个⽂档,物理上存在于⼀个索引之中,⽂档必须被索引/赋予⼀个索引的type

6.接近实时 NRT

Elasticsearch是⼀个接近实时的搜索平台。这意味着,从索引⼀个⽂档直到这个⽂档能够被搜索到有⼀个轻微的延迟(通常是1秒以内)

7. 集群 cluster

⼀个集群就是由⼀个或多个节点组织在⼀起,它们共同持有整个的数据,并⼀起提供索引和搜索功能。⼀个集群由⼀个唯⼀的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为⼀个节点只能通过指定某个集群的名字,来加⼊这个集群

8.节点 node

⼀个节点是集群中的⼀个服务器,作为集群的⼀部分,它存储数据,参与集群的索引和搜索功能。和集 群类似,⼀个节点也是由⼀个名字来标识的,默认情况下,这个名字是⼀个随机的漫威漫画⾓⾊的名字,这个名字会在启动的时候赋予节点。这个名字对于管理⼯作来说挺重要的,因为在这个管理过程中,你会去确定⽹络中的哪些服务器对应于Elasticsearch集群中的哪些节点。⼀个节点可以通过配置集群名称的⽅式来加⼊⼀个指定的集群。默认情况下,每个节点都会被安排加⼊到⼀个叫做“elasticsearch”的集群中,这意味着,如果你在你的⽹络中启动了若⼲个节点,并假定它们 能够相互发现彼此,它们将会⾃动地形成并加⼊到⼀个叫做“elasticsearch”的集群中。在⼀个集群⾥,只要你想,可以拥有任意多个节点。⽽且,如果当前你的⽹络中没有运⾏任何Elasticsearch节点,这时启动⼀个节点,会默认创建并加⼊⼀个叫做“elasticsearch”的集群。

9.分⽚和复制 shards&replicas

⼀个索引可以存储超出单个结点硬件限制的⼤量数据。⽐如,⼀个具有10亿⽂档的索引占据1TB的磁盘空间,⽽任⼀节点都没有这样⼤的磁盘空间;或者单个节点处理搜索请求,响应太慢。为了解决这个问 题,Elasticsearch提供了将索引划分成多份的能⼒,这些份就叫做分⽚。当你创建⼀个索引的时候,你可以指定你想要的分⽚的数量。每个分⽚本⾝也是⼀个功能完善并且独⽴的索引,这个索引”可以被 放置到集群中的任何节点上。分⽚很重要,主要有两⽅⾯的原因:

1)允许你⽔平分割/扩展你的内容容量。

2)允许你在分⽚(潜在地,位于多个节点上)之上进⾏分布式的、并⾏的操作,进⽽提⾼性能/吞吐量。⾄于⼀个分⽚怎样分布,它的⽂档怎样聚合回搜索请求,是完全由Elasticsearch管理的,对于作为⽤户 的你来说,这些都是透明的。

在⼀个⽹络/云的环境⾥,失败随时都可能发⽣,在某个分⽚/节点不知怎么的就处于离线状态,或者由 于任何原因消失了,这种情况下,有⼀个故障转移机制是⾮常有⽤并且是强烈推荐的。为此⽬的,

Elasticsearch允许你创建分⽚的⼀份或多份拷贝,这些拷贝叫做复制分⽚,或者直接叫复制。

复制之所以重要,有两个主要原因: 在分⽚/节点失败的情况下,提供了⾼可⽤性。因为这个原因,注 意到复制分⽚从不与原/主要(original/primary)分⽚置于同⼀节点上是⾮常重要的。扩展你的搜索量/吞吐量,因为搜索可以在所有的复制上并⾏运⾏。总之,每个索引可以被分成多个分⽚。⼀个索引也可以被复制0次(意思是没有复制)或多次。⼀旦复制了,每个索引就有了主分⽚(作为复制源的原来的分⽚)和复制分⽚(主分⽚的拷贝)之别。分⽚和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制的数量,但是你事后不能改变分⽚的数量。

默认情况下,Elasticsearch中的每个索引被分⽚5个主分⽚和1个复制,这意味着,如果你的集群中⾄少有两个节点,你的索引将会有5个主分⽚和另外5个复制分⽚(1个完全拷贝),这样的话每个索引总共就有10个分⽚。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4068 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6915 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4485 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
5458 0
阿里云服务器远程登录用户名和密码的查询方法
阿里云服务器远程连接登录用户名和密码在哪查看?阿里云服务器默认密码是什么?云服务器系统不同默认用户名不同
444 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16829 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3227 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
1131 0
8
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载