`
weitao1026
  • 浏览: 1052934 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ElasticSearch的工作机制

 
阅读更多

ElasticSearch,和Solr一样,是底层基于Apache Lucene,且具备高可靠性的企业级搜索引擎。

ElasticSearch中的一些概念其实和关系型数据库都有对应关系,比如数据库在ES中被称为索引,表在ES中被称作Type。

具体对应关系见下表。

ElasticSearch的工作机制

ElasticSearch中的Replica是副本的意思,创建副本的好处有两个,1,可以分流部分查询请求,2,如果集群中的某个分片丢失了,就可以使用这个副本将数据全部找回来,因为这个原因,副本分片和源分片不会放在同一节点上。 ES中每一个索引都可以被分成多个分片,但不一定每个分片都有副本,但是一旦创建了副本,就会有主分片的说法(作为复制源的分片),分片和副本的数量可以在索引创建的时候指定。下图是副本和分片的示意图,分片和它的副本不会在同一个节点上。

ElasticSearch的工作机制

在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量。  默认情况下,Elasticsearch中的每个索引被分片5个主分片和1套副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个副本,这样的话每个索引总共就有10个分片。

当ES的一个节点启动后,它会通过广播方式找到集群中的其他节点,并且建立连接。

在集群中,其中的某个节点会被选取作为主节点,这个主节点负责管理集群状态。这个主节点对于用户来说是透明的,用户不需要知道哪个节点是主节点。任何操作都可以发送到任何节点。必要的时候,任何节点可以并行的发送子查询到其他节点,并且将得到的响应合并后发送给用户,这些操作都不需要访问主节点。

主节点读取集群信息,在读取过程中,它会检测分片的情况,哪些分片是主分片,并且是可用的,在这一步之后,所有的分片已经准备好了,而副本还没有。下一步的操作就是找到那些已经被复制过的分片,将他们作为副本。如果一切顺利,那么ES启动成功了,所有的分片和副本都已经准备好了。

在ES工作的时候,主节点会监控所有的节点是否正常,默认配置为:节点每隔1s主节点会发送1次心跳,超时时间为30s,测试次数为3次,超过3次,则认为该节点同主节点已经脱离了。如果某一个节点出现问题,ES认为这个节点损坏,该节点会从集群中删除,并且ES会重新平衡整个集群。

ES通过Query DSL (基于json的查询语言)来查询数据,在ES内部,每次查询分成2个步骤,分散和聚合,分散是指查询所有相关的分片,聚合是指把所有分片上的查询结果合并,排序,处理然后在返回给客户端。

ElasticSearch 有4中方式来构建数据库,最简单的方法是使用index API,将一个Document发送到特定的index,一般通过curl tools实现。第二第三种方法是通过bulk API和UDP bulk API。两者的区别仅在于连接方式。第四种方式是通过一个插件-river。river运行在ElasticSearch上,并且可以从外部数据库导入数据到ES中。需要注意的是,数据构建仅在分片上进行,而不能在副本上进行。

Vagrant 和 Docker:如何在 OS X 上安装和设置 Postgres, Elasticsearch 和 Redis http://www.linuxidc.com/Linux/2014-09/106898.htm

分布式搜索ElasticSearch单机与服务器环境搭建 http://www.linuxidc.com/Linux/2012-05/60787.htm

ElasticSearch 的详细介绍 :请点这里

ElasticSearch 的下载地址 :请点这里

分享到:
评论

相关推荐

    7.17.1系列Elasticsearch的elasticsearch-analysis-ik分词器

    词库扩展性:elasticsearch-analysis-ik 采用了可扩展的词库机制。用户可以根据自己的需求,定制和扩展词库,添加新的词汇,从而实现更好的分词效果。 多种分词模式:elasticsearch-analysis-ik 支持多种分词模式,...

    elasticsearch elasticsearch-6.2.2 elasticsearch-6.2.2.zip 下载

    根据提供的文件信息,我们可以推断出本篇文章将围绕Elasticsearch 6.2.2版本进行详细介绍,包括其下载方式、主要功能特性以及在实际应用中的常见用途。 ### Elasticsearch简介 Elasticsearch是一款基于Lucene的...

    elasticsearch服务器安装包

    2. **下载安装包**:这里的"es安装包"即为Elasticsearch的安装文件,通常是一个zip或tar.gz格式的压缩包。你需要从官方网站或者镜像站点下载对应版本的安装包,确保与你的系统兼容。 3. **解压安装**:下载完成后,...

    Elasticsearch 开发手册

    在数据抽取 ELT 领域,ES 全家桶 ELK(Elasticsearch+Logstash+Kibana)赫赫有名。 Elasticsearch 基本概念: * 倒排索引:Elasticsearch 为什么快,核心设计理念就是采用了倒排索引机制。倒排索引的方式是,根据 ...

    《ElasticSearch入门到实战》电子书,从入门到进阶实战项目的教程文档,框架SpringBoot框架整合ES.zip

    **Elasticsearch 入门与...通过以上内容的学习,读者将能够全面了解 Elasticsearch 的核心概念和使用技巧,并具备在 SpringBoot 项目中整合 Elasticsearch 的能力,为实际工作中的数据存储、搜索和分析打下坚实基础。

    elasticsearch7.17.10-最新支持Java1.8版本

    2. **倒排索引**:Elasticsearch使用倒排索引机制进行快速的全文搜索,将每个词项指向包含该词的文档集合,而不是将每个文档指向其包含的词项,大大提升了搜索效率。 3. **RESTful API**:Elasticsearch采用HTTP和...

    谷歌浏览器elasticsearch head插件

    这个插件的界面简洁,功能强大,极大地提高了Elasticsearch使用者的工作效率。 **二、安装与使用** 1. **安装步骤** - 首先,从官方或者可靠的源下载`0.1.5_0.crx`文件,这是Elasticsearch Head插件的安装包。 -...

    最新版windows elasticsearch-7.17.1-windows-x86_64.zip

    - Kibana是Elasticsearch的数据可视化工具,与Elasticsearch协同工作,提供友好的界面。同样解压Kibana的Windows版本,并配置相应的Elasticsearch连接信息。 5. **数据导入与索引管理**: - 使用`bin/elastic...

    elasticsearch-7.7(内含一键安装脚本)

    - **分布式架构**:Elasticsearch 可以在多台机器上运行,通过分片和复制机制实现数据的分布存储和故障恢复,提供高可用性。 - **RESTful API**:Elasticsearch 使用 JSON 格式的 HTTP 接口,符合 RESTful 风格,...

    最新版linux elasticsearch-7.14.0-linux-x86_64.tar.gz

    Elasticsearch是一个开源的全文搜索引擎,广泛应用于大数据分析和实时搜索场景。它的最新版本为7.14.0,这是专为Linux x86_64架构设计的。在这个版本中,Elasticsearch提供了一系列增强的功能和性能优化,旨在提高...

    Elasticsearch 8.1.2 Linux版本

    5. **安全设置**:Elasticsearch 8.x版本默认启用安全机制,需配置用户和权限,如使用x-pack或Opensearch Security。 ### 三、API操作 Elasticsearch提供RESTful API,支持HTTP协议进行操作,如创建索引、插入文档...

    Elasticsearch实战与原理解析 源代码.zip

    Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful接口和实时性为特点,广泛应用于数据搜索、...通过阅读和实践这些源代码,你将能够更好地理解Elasticsearch的工作机制,从而在实际项目中更高效地使用它。

    ElasticSearch Head 适配ElasticSearch 7.0 +

    7. **错误处理和日志**:ElasticSearch Head需要升级错误处理机制,以适配Elasticsearch 7.0的错误结构和响应格式,同时提供友好的用户反馈。 8. **多租户支持**:Elasticsearch 7.0可能对多租户环境提供了更好的...

    elasticsearch-analysis-dynamic-synonym-7.2.0

    Elasticsearch(ES)是一款功能强大的全文搜索引擎,广泛应用于数据检索、数据分析等领域。为了提高搜索的准确性和便利性,Elasticsearch提供了丰富的分析插件,其中"elasticsearch-analysis-dynamic-synonym-7.2.0...

    ElasticSearch实战教程

    "ElasticSearch实战教程" ElasticSearch是一款分布式、RESTful 风格的搜索和数据分析引擎,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。 ...

    elasticsearch-7.2.0

    - **内置安全特性**:Elasticsearch 7.2.0进一步加强了内置的安全机制,例如支持细粒度访问控制(FGAC),这有助于管理员更加精确地管理用户的访问权限。 - **身份验证与授权**:增强了对多种身份验证方式的支持,...

    ElasticSearch分布式搜索引擎 v7.17.18.zip

    Elasticsearch采用倒排索引机制,使得数据一旦被索引,即可立即进行搜索,实现近乎实时的搜索体验。这种高效检索能力对于大数据量的应用场景尤其重要。 **3. RESTful API** Elasticsearch通过简单易用的RESTful API...

Global site tag (gtag.js) - Google Analytics