ES 25 - Elasticsearch的分页查询及其深分页问题 (deep paging)
程序员文章站
2022-06-24 14:14:02
Elasticsearch 如何进行分页查询? 如果起始页、页大小很大会有性能上的损耗吗? 本文从分页查询开始, 引出其deep paging (即深层分页) 问题, 并分析其优劣, 给出解决方法. ......
目录
1 分页查询方法
- 在get请求中拼接from和size参数
// 查询10条数据, 默认从第0条数据开始 get book_shop/_search?size=10 // 从第0条数据开始(包括第0条), 查询10条数据 get book_shop/_search?from=0&size=10 // 从第5条数据开始(包括第5条), 查询10条数据 get book_shop/_search?from=5&size=10
2 分页查询的deep paging问题
deep paging, 就是深层分页搜索:
分页搜索的深度越深, 协调节点(负责分发查询、汇总结果的es节点)上要存储的数据就越多, 协调节点对这些数据整体排序后, 再取对应页的数据.
这个过程既耗费网络资源, 也耗费内存和cpu资源.
应该尽可能避免deep paging操作. —— 方法类似于solr的游标, 后续补充.
版权声明
作者:
出处: 博客园
上一篇: 都能体验戴口罩解锁了!苹果发布iOS 15.4公测 快升级
下一篇: CSS3 之 童年的纸飞机