【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继续滚动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、批量查询

在这里插入图片描述

  1. 通过mget批量查询
    在这里插入图片描述
    如果根据id没有数据,将会有个found字段为false
    在这里插入图片描述

四、批量操作

在这里插入图片描述

1. 批量新增

在这里插入图片描述
注意:要有回车,最后一行也是。如果报错,不会影响前面已插入的数据

推荐使用下面的批量新增
在这里插入图片描述

  1. 批量创创建(index) 如果id存在将会覆盖。
    在这里插入图片描述
2.批量更新

在这里插入图片描述

3. 批量删除

在这里插入图片描述

不同的操作整合到一起
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



这篇关于【ES】之深度分页和批量操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程