Java技术升华

ElasticScarch的学习总结(ES整体的结构)

2017-11-04  本文已影响66人  陈_志鹏

ElasticScarch的学习总结

ElasticScarch简介:

从字义上理解就是弹性搜索的意思,其实他就是一个搜索引擎,基于Lucene开发的分布式搜索引擎,和基于RESTful Web接口,搜索接近实时、快速、稳定。目前这款搜索引擎非常的健壮和流行。本文章总结的都是一些学习过的知识。另外有操作的文档,建议最好是先自己动手搭建好之后再看本文章。(每个人学习的方式都不一样,个人不太喜欢太理论的东西,我喜欢先动手操作一遍再理论 这样的学习方式对我来说比较高效率。)

特点介绍:

ElasticScarch名词的解释:

每门技术都有自己的专业名词,下面总结一下该技术的名词解释,在用ElasticScarch的过程中可能会经常听到一些专业名词,下面为大家解释并且理解这些词汇的概念。

名词解释:

  • Cluster(集群): ElasticScarch是一个分布式的搜索引擎,它由多台机器的Node(节点)组成在一起,每台机器都有ClusterName,当他们发现自己的ClusterName相同时,就会组织成一个Cluster(集群),他们会共同分享数据、又具有负载均衡的特性。
  • Node(节点):相当于一个单节点的ElasticScarch,单机的一个服务,在Cluster(集群) 中的其中一台主机。
  • Shards(分片):一个Index(索引)是由N个、多个Shards(分片)组成的,把Index(索引)的数据都分在不同的分片上,再把分片放在不同的物理机器上。由多台机器承载这些大量的数据。
  • Replicas(副本):他会从Shards(分片)中复制多份的分片,当装有Shards(分片)的机器宕机后,会自动成为主分片,一个安全的备份。

索引名词解释:

  • Index(索引): 一个Index(索引)有一个分片的概念,一个Index(索引)包含了N个分片,因为ElasticScarch是基于Lucene封的,一个分片又可以理解成是一个Lucene的索引。(先把它理解成一个大的关系型数据库)
  • Type(类型):在一个Index(索引)中你可以有一种或者多种数据类型。(理解成在一个关系型数据库中有一张或者多张表)
  • Document(文档):一个文档是一个可被Index(索引)的基础信息单元。(理解成数据库表里面的一条数据)
  • Field(列):Field(列)是ElasticScarch中最小的单位(一条数据某一列、一个字段)

ElasticScarch的架构体系:

ElasticScarch的架构图:

adb004ab5fb11cccb34d44110b9ed12.png

我们从最底层往上讲

Gateway层:
最底这一层最主要是是做数据持久化的,其实就是数据层,可以看到可以支持各种的存储系统,本地的存储系统、HadoopHDFS等等各种各样的数据存储系统,用于存元数据。

Lucene层
ElasticScarch的底层就是对Lucene的一个封装,它由始至终都要用到Lucene,ElasticScarch在Lucene的基础之上做了一个分布式的框架,把多个Lucene的索引给管理起来,最后做一个非常大规模的搜索引擎。

倒数第三层 index、search、mapping:

倒数第四层 Discovery、Scripting、3rdPlugins:

Transport层:
Transport层主要用于数据的传输、想访问ElasticScarch,第一步就是要和它进行连接,那么连接的步骤和数据的传输,就在这层。一般我们都用http进行交互。

Memcached层:这个架构图是比较早期的,现在没有这一层了。以前这层好像是做缓存的(反正不重要)。
RESTful 层:这一层就很简单了,就不说了。

上一篇 下一篇

猜你喜欢

热点阅读