Elasticsearch (ES) 是一个基于 Lucene 的开源搜索和分析引擎,它提供了一个分布式、多租户能力的全文搜索引擎,带有 HTTP 网络接口和基于 JSON 的文档。以下是 Elasticsearch 的写入流程和构建倒排索引原理,以及读取流程的概述。
写入流程
-
客户端请求:客户端通过 HTTP 请求将文档发送到 Elasticsearch 集群中的一个节点(通常是 master 节点)。
-
协调节点:接收到请求的节点会成为协调节点(coordinating node),它负责路由请求到正确的分片(shard)。
-
路由到分片:根据文档的 ID 和索引设置中的分片数量,协调节点计算出文档应该存储在哪个分片上。
-
主分片写入:文档被写入到其对应的主分片(primary shard)上。
-
副本分片写入:如果启用了副本(replicas),主分片会将文档复制到其对应的副本分片(replica shard)上,以确保数据的高可用性。
-
写入确认:一旦文档被成功写入主分片和所有副本分片(取决于写入的一致性设置),协调节点会向客户端发送写入成功的确认。
-
刷新操作:在写入过程中,文档首先被写入到一个内部缓冲区中。为了提高写入性能,Elasticsearch 不会立即将缓冲区中的数据写入到磁盘上的索引文件中。当缓冲区达到一定大小或经过一定的时间后,会触发一个刷新(refresh)操作,将缓冲区中的数据写入到磁盘上的新段(segment)中。
构建倒排索引原理
Elasticsearch 使用 Lucene 作为其核心索引和搜索引擎。L

最低0.47元/天 解锁文章
1004

被折叠的 条评论
为什么被折叠?



