大意了没有闪,ES查询的完整流程!

本文探讨了Elasticsearch查询效率的优化方法,强调了通过指定路由字段来避免全量遍历分片的重要性。在查询时,通过路由字段可以精确定位数据所在的分片,减少不必要的查询操作,从而提高查询效率。此外,副本分片在主分片不可用时用于提供高可用性,但通常查询主要针对主分片。了解并利用这些策略,能有效提升ES系统的性能。
摘要由CSDN通过智能技术生成

ES默认采用hash分片,这种方式对于查询请求要遍历所有分片,最终在master节点进行结果的汇总处理,最终返回。

在这个过程中,查询在每个分片中单线程运行,并行处理多个分片。

有的人说查询的时候,难道不查询副本分片吗?只查询主分片就可以了吗?

副本的作用在于ES集群的高可用,当主分片丢失,该分片数据不可用时,master会将副本分片提升为主分片,这个时候可以接收查询请求。

如何提高ES的查询效率?

都知道,分片仅仅是对这份数据进行了切割,而不是数据分为了很多备份,多个分片,在查询的时候,并行对多个分片进行单线程查询,避免了一整个超大数据量中进行查询,提高了效率。那么如何再提高一点呢?

有的时候,是不需要遍历所有分片的,比如春夏秋冬四个分片,你知道你要查询的数据在春分片中,你还要去遍历春夏秋冬,效率就会变低。

通过指定路由字段,可以规定该条文档存储到哪个分片,同样搜索的时候指定路由字段进行搜索。

我们在进行get,delete,put等操作时,指定routing字段属性,就可以完成对某一个分片的操作。

路由操作官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值