elasticsearch首页投稿(暂停使用,暂停投稿)Elasticsearch

ElasticSearch 介绍

2018-01-17  本文已影响103人  YG_9013

整体介绍

ElasticSearch,官网上对它的定义为:

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases.

说它是一个分布式的,具有Restful编程风格的,可解决不断出现的用例的一个分析搜索引擎。搜索这点大家认识都很深刻,它的分析能力,其实也很强。目前我们这边做过命中量为1.2亿的聚合(简单的聚合统计)运算,时间只需要5s左右。很给力!

它具有以下四个特征:

概念介绍

1、准实时(Near Realtime)

默认情况下,插入的数据1s后可查询,所示称其为准实时系统。

2、集群(Cluster)

由一个或多个节点组成,能保存数据,且所有节点提供索引和搜索功能。

3、节点(Node)

集群的单个server,可存储数据,并提供集群的索引和搜索功能。

4、索引(Index)

所有具有相似特征的文档集合。类似于数据库的database。

5、类型(Type)

Type主要用来逻辑上分割索引。类似于数据库中的table。数据库中的table是物理分割的,但ES的type是逻辑分割的,不同type的相同field还是会放在一起。因此,ES6.0中已取消多type。

6、文档(Document)

可被索引的最小单位。类似于数据库中的一条记录。

7、分片(shard)

索引的大小可能超出单个节点的限制,将索引分为多块存储,每块即为一个分片。

8、副本( replicas )

分片的备份数。默认情况下每个索引有一个备份。

9、集群状态

模块介绍

网上找的相关内容感觉都不全,我按照源码的结构整理了一下,大致分为以下几个模块:

1、ScriptModule

加载用户自定义的脚本插件,提供脚本服务(ScriptService)。

脚本服务包括:

2、AnalysisModule

分词相关的模块。

3、SettingsModule

加载对应的系统配置。

4、ClusterModule

5、IndicesModule

配置每个节点上索引共享的类和服务。

6、SearchModule

加载插件和内嵌的查询组件,包括(打分、聚合、排序等等)

7、ActionModule

8、GatewayModule

Gateway模块用于存储es集群的元数据信息。这部分信息主要包括所有的索引连同索引设置和显式的Mapping信息。集群元数据的每一次改变(比如增加删除索引等),这些信息都要通过Gateway模块进行持久化。当集群第一次启动的时候,这些信息就会从Gateway模块中读出并应用。

9、NetworkModule

注册和绑定所有网络相关的类。

10、RepositoriesModule

Repositories模块主要是做索引的快照和恢复。Snapshot/Restore

11、DiscoveryModule

Discovery模块主要用来做节点发现。

后续

后面的ES文章主要会在ClusterModule和SearchModule上面下功夫,ScriptModule、AnalysisModuleGatewayModule和RepositoriesModule模块也会聊一聊,其他的模块会在介绍前面的模块时顺带点一下,不会花大片的篇幅讲解。

上一篇 下一篇

猜你喜欢

热点阅读