shard_num = hash(routing_value) % number_of_primary_shards默认 routing_value = 文档 _id;本例中 _id=1001 → 假设路由到 shard routing,协调节点将查询并行发送到所有逻辑 shard 的一个活跃副本(可能是 Primary,也可能是 Replica);假设索引有 3 个 shard → 同时查 shard-0、shard-1、shard 每个 shard 本地执行检索以包含 doc 1001 的 shard-2 为例:查 Term Dictionary → 获取 "人工智能" 的 docFreq = n_t;查 Postings List
新增文档的流程如下: 解读: 1)新增一个id=1的文档 2)对id做hash运算,假如得到的是2,则应该存储到shard-2 3)shard-2的主分片在node3节点,将数据路由到node3 4)保存文档 5)同步给shard-2的副本replica-2,在node2节点 6)返回结果给coordinating-node节点 8.集群分布式查询 elasticsearch的查询分成两个阶段: scatter
新增文档的流程如下: 解读: 1)新增一个id=1的文档 2)对id做hash运算,假如得到的是2,则应该存储到shard-2 3)shard-2的主分片在node3节点,将数据路由到node3 4)保存文档 5)同步给shard-2的副本replica-2,在node2节点 6)返回结果给coordinating-node节点 4.4.集群分布式查询 elasticsearch的查询分成两个阶段: scatter
A机房数据通过标签识别转发到分片shard-1,B机房数据转发到分片shard-2,C机房数据转发到分片shard-3。
新增文档的流程如下: 解读: 1)新增一个id=1的文档 2)对id做hash运算,假如得到的是2,则应该存储到shard-2 3)shard-2的主分片在node3节点,将数据路由到node3 4) 保存文档 5)同步给shard-2的副本replica-2,在node2节点 6)返回结果给coordinating-node节点 4.