【ES】之深度分页和批量操作
2021/4/11 18:29:02
本文主要是介绍【ES】之深度分页和批量操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、深度分页
- 二、滚动搜索
- 三、批量查询
- 四、批量操作
- 1. 批量新增
- 2.批量更新
- 3. 批量删除
一、深度分页
当我们取出第9999到10009的数据的时候,他会在每个分片中取出10009条数据,然后重新排序分页,这样对性能有很大的影响。
如何解决呢?
可以控制搜索结果在100页以内,这样对性能就不会有太大的影响了。
通过设置index.max_result_window来突破10000页的限制
二、滚动搜索
一次性查询1万+数据,往往会造成性能影响,因为数据量太多了。这个时候可以使用滚动搜索,也就是 scroll 。 滚动搜索可以先查询出一些数据,然后再紧接着依次往下查询。在第一次查询的时候会有一个滚动id,相当于一个 锚标记 ,随后再次滚动搜索会需要上一次搜索 ,根据这个进行下一次的搜索请求。每次搜索都是基于一个历史的数据快照,查询数据的期间,如果有数据变更,那么和搜索是没有关系的,搜索的内容还是快
scroll=1m,相当于是一个session会话时间,搜索保持的上下文时间为1分钟。
携带上次的scroll_id继续滚动
三、批量查询
- 通过mget批量查询
如果根据id没有数据,将会有个found字段为false
四、批量操作
1. 批量新增
注意:要有回车,最后一行也是。如果报错,不会影响前面已插入的数据
推荐使用下面的批量新增
- 批量创创建(index) 如果id存在将会覆盖。
2.批量更新
3. 批量删除
不同的操作整合到一起
这篇关于【ES】之深度分页和批量操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门