elasticsearch - Elasticsearch路由键映射到相同分片的行为

标签 elasticsearch

假设我们有一个带路由键的Elasticsearch查询[苹果,熊,桃子]。路由键applebear映射到分片1,而peach映射到分片2。发送后,是否将有2个单独的查询发送到分片1,或者由于ES在内部进行了优化,将对单个分片1发送单个合并查询吗?
假设发送给分片1的查询与doc1和doc2匹配。主分片会从分片1接收[doc1,doc2]还是从[doc1,doc2,doc1,doc2]接收,因为发送了单独的查询?如果是后者,ES会过滤掉重复的文档吗?
我读了the ES docs about routing,但是没有运气。

最佳答案

路由功能的主要目的是减少调用索引的所有分片的影响。假设您在10个节点上有一个包含10个分片的索引。当您搜索索引时,您正在使用10个节点的RAM,CPU和I / O。使用此功能,您仅调用具有您的信息的分片/节点。
根据示例,假设您调用/_search/routing=apple,bear。仅一个搜索查询将发送到协调器节点。协调节点检查哪个数据节点在其分片上具有此路由参数,并且只会向该数据节点和分片1发送一个请求,因此不会重复。
假设您调用/_search/routing=apple,peach。这与上面相同,但是协调器将再次向分片1和分片2发送请求。如果您在分片1和分片2中没有重复的文档,则不会有重复的响应。

关于elasticsearch - Elasticsearch路由键映射到相同分片的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64546619/

相关文章:

elasticsearch - logstash将搜索结果限制为过去一天

sorting - 使用 from/size 进行 Elasticsearch 排序

scala - elastic4s查询搜索功能得分

elasticsearch - 如何使用附件插件在Elasticsearch中使用特殊字符进行搜索?

solr - 从Solr 3迁移数据

java - Elasticsearch - 构建和安装插件

elasticsearch - Cassandra 和高级查询 : Spark, ElasticSearch, Sorl

elasticsearch - 根据文档总数过滤掉 top_hits 子聚合

ruby - 为什么 Postgres 全文搜索和 Elasticsearch 对结果的排名不同?

elasticsearch - sgadmin.sh 失败 elasticsearch && searchguard