笔记:Elasticsearch基本概念

Lucene是一个由Java语言开发的开源全文检索引擎工具包。把Lucene用Netty封装成服务,使用JSON访问就是Elasticsearch。
Elasticsearch内置了对分布式集群和分布式索引的管理,所以相对Solr来说,不需要额外安装ZooKeeper,其更容易分布式部署。使用Elasticsearch的搜索系统整体架构如下图所示:
在这里插入图片描述
Elasticsearch的每一个运行实例称为一个节点,既可以在同一台计算机上运行多个实例,也可以在每台计算机上只运行一个实例。
在一个分布式系统里,多个Elasticsearch运行实例可以组成一个集群(cluster),该集群里有一个动态选举出来的主节点(master)。如果主节点失败,会自动选出新的节点作为主节点,所以不存在单点故障。
在同一个子网中,只需要在每个节点上设置相同的集群名,这些集群名相同的节点会自动组成一个集群。Elasticsearch包含了节点和节点之间通信模块及节点之间的数据分配和平衡模块。
为了实现容错,Elasticsearch会把查询文档集合分解为多个小的索引,每一个小的索引就叫做分片(shards)。每一个分片都可以有0到多个副本(replicas),而每一个副本也都是分片的完整复制品,这样也提高了查询速度。
一旦Elasticsearch的某个节点数据损坏或服务不可用的时候,就可以用其他节点来代替坏掉的节点,以达到高可用的目的。当有节点加入或退出时,主节点会根据机器的负载对索引分片进行重新分配,当“挂掉”的节点再次重新启动的时候也会进行数据恢复(recovery)。
Elasticsearch通过网关(Gateway)来管理集群恢复,可以配置集群需要加入多个节点才能启动恢复数据。网关配置用于恢复任何失败的索引。当节点奔溃并重新启动时,Elasticsearch将从网关读取所有的索引和元数据。
Transport代表Elasticsearch内部的节点或者集群与客户端之间的交互方式,默认使用TCP协议进行交互,同事支持HTTP协议(JSON格式)、thrift、Servlet、Memcached、ZeroMQ等多种的传输协议(通过插件方式集成)。
为了让集群在运行时动态附加额外的功能,可以使用插件机制加载实现公共接口的程序集。Elasticsearch插件用于各种特定的方式扩展基本的Elasticsearch功能。

  • Elasticsearch的优点
  1. 横向可扩展性:只需要增加一台服务器,做一点配置,启动一下Elasticsearch进程就可以并入集群
  2. 分片机制提供更好的分布性:同一个索引分成多个分片(sharding),这点类似于HDFS的块机智;分而治之的方式可提升处理效率
  3. 高可用:提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上
  4. 使用简单:只需一条命令就可以下载文件,然后很快就能搭建一个站内搜索引擎。
  • 全文搜索
    是指计算机搜索程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,搜索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户。这个过程类似于通过字典中的搜索字表查字的过程。Lucene是目前全球使用最广的全文搜索引擎开源库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值