设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

Elasticsearch路由策略的描述是对的吗?

Elasticsearch | 作者 cat_zzz | 发布于2021年01月10日 | 阅读数:120

假设你有一个100个分片的索引。当一个请求在集群上执行时会发生什么呢?
1. 这个搜索的请求会被发送到一个节点
2. 接收到这个请求的节点,将这个查询广播到这个索引的每个分片上(可能是主分片,也可能是复本分片)
3. 每个分片执行这个搜索查询并返回结果
4. 结果在通道节点上合并、排序并返回给用户

很纳闷为什么要将请求广播到其他分片, 既然默认是以id作为分片键进行hash运算, 那为什么接受请求的节点不直接hash运算得到对应所在分片然后只对正确分片进行请求呢? 还要广播到其他节点?搞不明白为什么要这样, 有哪位老师知道吗?
已邀请:

w_b

赞同来自: cat_zzz

只是输入query,和id没关系,得在所有的shard中找id。或者存数据的时候加上路由,然后查询的时候也加上一样的路由参数,才会在特定shard上查询

要回复问题请先登录注册