ElasticSearch入门

ElasticSearch是什么?

Elasticsearch是实时的分布式搜索分析引擎,内部使用Lucene做索引与搜索。

ElasticSearch的基本概念

Elasticsearch的核心概念有:

  • Node
  • Cluster
  • Shards
  • Replicas、Index
  • Type
  • Document
  • Settings
  • Mapping
  • Analyzer

Node

即节点。是组成Elasticsearch集群的基本服务单元,集群中的每个运行中的Elasticsearch服务器都可称之为节点。

节点的状态

节点的状态有Green、Yellow和Red三种

  • Green:绿色,表示节点运行状态为健康状态。所有的主分片和副本分片都可以正常工作,集群100%健康。
  • Yellow:黄色,表示节点的运行状态为预警状态。所有的主分片都可以正常工作,但至少有一个副本分片是不能正常工作的。此时集群依然可以正常工作,但集群的高可用性在某种程度上被弱化。
  • Red:红色,表示集群无法正常使用。此时,集群中至少有一个分片的主分片及它的全部副本分片都不可正常工作。虽然集群的查询操作还可以进行,但是也只能返回部分数据(其他正常分片的数据可以返回),而分配到这个有问题分片上的写入请求将会报错,最终导致数据丢失。

节点的职责

节点按照职责可以分为master节点、数据节点和协调节点。

  • master节点:master节点是由集群节点通过选举算法选举出来的,一个集群中只有一个节点可以成为master节点,但是可以有一个或多个节点参与master节点的选举。master节点负责维护整个集群的相关工作,管理集群的变更,如创建/删除索引、节点健康状态监测、节点上/下线等。
  • 数据节点:数据节点主要负责索引数据的保存工作,此外也执行数据的其他操作,如文档的删除、修改和查询操作。
  • 协调节点:负责转发客户端向ES集群节点发起的请求。可以设置某些节点作为单独的协调节点。

Cluster

即集群。由具有相同cluster.name (默认值为elasticsearch)的一个或多个Elasticsearch节点组成的,各个节点协同工作,共享数据。同一个集群内节点的名字不能重复,但集群名称一定要相同。

Shards

即分片。当索引的数据量太大时,受限于单个节点的内存、磁盘处理能力等,节点无法足够快地响应客户端的请求,此时需要将一个索引上的数据进行水平拆分。拆分出来的每个数据部分称之为一个分片。一般来说,每个分片都会放到不同的服务器上。
Elasticsearch中的每个分片其实都是Lucene中的一个索引文件,因此每个分片必须有一个主分片和零到多个副本分片。
在Elasticsearch中,默认为一个索引创建5个主分片,并分别为每个主分片创建一个副本。

Replicas

即备份,也可称之为副本。副本指的是对主分片的备份,这种备份是精确复制模式。每个主分片可以有零个或多个副本,主分片和备份分片都可以对外提供数据查询服务。当构建索引进行写入操作时,首先在主分片上完成数据的索引,然后数据会从主分片分发到备份分片上进行索引。当主分片不可用时,Elasticsearch会在备份分片中选举出一个分片作为主分片,从而避免数据丢失。
一方面,备份分片既可以提升Elasticsearch系统的高可用性能,又可以提升搜索时的并发性能;另一方面,备份分片也是一把双刃剑,即如果备份分片数量设置得太多,则在写操作时会增加数据同步的负担。

Index

即索引。在Elasticsearch中,索引由一个和多个分片组成。在使用索引时,需要通过索引名称在集群内进行唯一标识。

Type

即类别。类别指的是索引内部的逻辑分区,通过Type的名字在索引内进行唯一标识。在查询时如果没有该值,则表示需要在整个索引中查询。

Document

即文档。索引中的每一条数据叫作一个文档,与关系数据库的使用方法类似,一条文档数据通过_id在Type内进行唯一标识。

Settings

Settings是对集群中索引的定义信息,比如一个索引默认的分片数、副本数等。

Mapping

Mapping表示中保存了定义索引中字段(Field)的存储类型、分词方式、是否存储等信息,有点类似于关系数据库(如MySQL)中的表结构信息。在Elasticsearch中,Mapping是可以动态识别的。
如果没有特殊需求,则不需要手动创建Mapping,因为Elasticsearch会根据数据格式自动识别它的类型。当需要对某些字段添加特殊属性时,如定义使用其他分词器、是否分词、是否存储等,就需要手动设置Mapping了。一个索引的Mapping一旦创建,若已经存储了数据,就不可修改了。

Analyzer

Analyzer表示的是字段分词方式的定义。一个Analyzer通常由一个Tokenizer和零到多个Filter组成。在Elasticsearch中,默认的标准Analyzer包含一个标准的Tokenizer和三个Filter,即Standard Token Filter、Lower CaseToken Filter和Stop Token Filter。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值