【ElasticSearch】ElasticSearch的基本概念

ElasticSearch基本概念

索引 Index

类似于传统RMDB的数据库,ElasticSearch的数据存储在一个或多个索引中,可以向索引写入文档或者从索引读取文档,并通过ElasticSearch使用Lucene将数据写入索引或从索引中检索数据。

文档 Document

主要实体。文档由字段构成,每个字段都有字段名以及一个或多个字段值。从客户端角度看,文档是一个JSON对象。

映射

存储ElasticSearch提供的各种特性,如排序时所需的字段内容信息、一些决定如何将输入文本分割为词条的参数、哪些词条应该被过滤掉的参数等等元信息。

类型 Type

每个文档都有对应的类型定义。一个索引中可以存储多种文档类型,并为不同文档类型提供不同的映射。8.0后逐渐弃用。

节点 Node

单个ElasticSearch服务实例为节点

集群 Cluster

多个节点组成的系统为集群,且在ElasticSearch中配置集群很容易

分片 Shard

集群允许系统存储的数据总量超过单机容量。ElasticSearch将数据散步到多个物理Lucene索引上,而这些Lucene索引就是分片,散步分片的过程叫分片处理(sharding)。ElasticSearch自动完成分片处理,且让这些分片呈现一个大所引导样子。分片的数量在索引创建时就已经配置好,之后无法改变。

副本 Replica

副本解决了访问压力过大时单机无法处理所有请求的问题。每个分片创建冗余的副本,处理查询时可以把这些副本用作最初的主分片。

网关 Gateway

关于集群状态,索引设置的各种信息都会被收集起来,并在网关中持久化

ElasticSearch工作流程

启动过程

ElasticSearch启动时,根据配置使用广播或单播来发现同一个集群中的其他节点。集群中随意一个节点被选为管理节点(Master Node),这个管理节点负责集群的状态管理以及在集群拓扑变化时做出反应,分发索引分片到集群的相应节点上。ElasticSearch的管理节点并没有特殊地位,所有操作可以发送到任意节点,ElasticSearch内部自行处理这些操作命令,且这些命令不需要经过管理节点处理。

故障检测

对每个在预定义的超时时间内没有响应的主分片,一个新的主分片将会从原来的主分片的副本中脱颖而出。

与ElasticSearch通信

ElasticSearch假设数据由URL携带或以JSON对象传输。

  1. 索引数据
    建索引操作只会发生在主分片上,如果索引请求发送至某个没有对应主分片只有副本的节点,这个请求会被转发到有正确的主分片的节点。下面的索引API可以创建一个文档:
 curl -XPUT http://localhost:9200/blog/article/2020-7-28 -d '{"title":"Hello World!","content":"Hello ElasticSearch!","tags":["Hello","World","ElasticSearch"]}'
  1. 查询数据
    DSL(基于JSON的可用于构建复杂查询的语言)可做到:
    1、各种查询类型:词项、短语、范围、布尔、模糊、区间、空间
    2、组合简单查询构建复杂查询
    3、文档过滤,不影响评分的前提下抛弃不满足特定查询条件的文档
    4、使用预搜索并查找与指定文档匹配的query集合
    查询分两个阶段:分散阶段和合并阶段。分散阶段将query分发到包含相关文档的多个分片中去执行查询,合并则是从这些分片中收集返回结果,然后再进行合并、排序、后续处理,最后返回客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值