导图社区 Elasticsearch
Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。Elasticsearch 是索引、搜索和分析魔法发生的地方。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
Elasticsearch
ES数据储存的概念
index : 相当于table表
Document : 对应MySQL中的一行记录
Field : 列
Mapping映射 : schema 每个字段的类型通过Mapping去定义 创建一个Index 的时候需要指定一个Mapping
ES全文检索原理
基于Lucene开源全文检索原理
倒排索引
特性
“Quick” 和 “quick” 被认为是不同的单词;
"fox" 和 "foxes" 很相似,就像 "dog" 和 "dogs" ——它们都是同根词。
"jumped" 和 "leap" 不是同根词,但意思相似——它们是同义词。
ES集群介绍
Master主节点
不负责数据的读写,只负责集群状态的管理.Index元数据的管理,数据分片管理
Master Eligible
主节点的高可用备份节点
俗称备胎
DataNode
数据的CRUD,搜索,倒排索引维护
CPU和内存密集型
扩容建议水平扩容(多加机器)
协调者节点 只做协调者
存在只做协调者这个角色的原因 ES Data节点在存入数据的时候不只是简单的把数据copy到磁盘上, 而是还要维护一份倒排表
维护倒排表, 在插入一篇新的文档的时候, 需要对文档进行分析(分词, 统计词出现的次数, 更新对应关键词的倒排表)
协调者节点, 就是在数据查询的时候, 辅助做路由, 结果的合并的工作, 减轻data节点的压力
Ingest
数据ETL的节点 数据保存之前,可以通过该节点做ETL工作
数据储存概念
主分片
primary Shard
副分片
replica Shard
Shard分片, 一个Index 可以有多个Shard(默认5个), 一个Shard分片默认会有两个副本 replica
每一个Shard对应一个Lucene的Index
Primary Shard 主分片 负责读, 负责写
replica Shard 副本分片 只负责读
一个Shard 会对应多个Segment(段)
Segment段就是执行搜索的最小单位(每个Segment都会维护一个倒排索引表)
索引(index)与分片(shards)
索引是一个用来指向一个或多个分片(shards)的“逻辑命名空间(logical namespace)”。
一个分片(shard)是一个最小级别“工作单元(worker unit)”,它保存了索引中所有数据的一部分。
分片是Elasticsearch在集群中分发数据的关键。把分片想象成数据的容器。文档存储在分片中,然后分片分配到你集群中的节点上。
分片可以是主分片(primary shard)或者是复制分片(replica shard)
复制分片
在集群中创建一个叫Blogs的索引
默认情况下,一个索引被分配5个主分片,每个主分片都有一个副分片
数据流转逻辑图
Elasticsearch的分布式
Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:
将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
冗余每一个分片,防止硬件故障造成的数据丢失。
将集群中任意一个节点上的请求路由到相应数据所在的节点。
无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。