【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-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)