Map到同一分片的elasticsearch路由密钥的行为

hyrbngr7  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(354)

假设我们有一个带有路由键的elasticsearch查询[apple,bear,peach]。路由密钥 apple 以及 bear Map碎片1 peach Map到碎片2。发送时,会有两个单独的查询发送到shard 1,还是会有一个合并的查询发送到shard 1,因为es在内部进行了优化?
假设发送到shard1的查询与doc1和doc2匹配。主shard是否会从shard 1接收[doc1,doc2],或者[doc1,doc2,doc1,doc2],因为会发送不同的查询?如果是后者,es会过滤掉重复的文档吗?
我读了关于路由的es文档,但是没有运气。

zz2j4svz

zz2j4svz1#

路由特性的主要目的是减少调用所有索引碎片的影响。假设你有一个索引,在10个节点上有10个碎片。搜索索引时,使用的是ram、cpu和10节点的i/o。使用此功能,您只能调用包含您的信息的shard/节点。
举个例子,假设你打电话给 /_search/routing=apple,bear . 只有一个搜索查询将发送到协调器节点。协调器节点检查哪个数据节点的shard上有这个route参数,并且只向该数据节点和shard 1发送一个请求。所以不会有重复的。
假设你打电话来 /_search/routing=apple,peach . 这与上面相同,但协调器将向shard 1和shard 2发送请求。同样,如果在shard1和shard2中没有重复的doc,则不会有重复的响应。

相关问题