美文网首页
ES深度分页与批量操作

ES深度分页与批量操作

作者: 蓝色Hippie | 来源:发表于2020-09-14 06:31 被阅读0次

    一、分页查询

    1.普通分页查询

    2.深度分页

    其实就是搜索的深浅度,比如第一页、第二页、第二十页等等,是浅分页。第一万页,第两万页等就是很深了

    我们在获取第9999条到10009条数据的时候,其实每个分片都会拿到10009条数据,然后集合在一起,总共是30027条数据,针对这些数据再做排序处理,最后获得十条数据。

    如此一来,搜索的太深,就会造成性能问题,会耗费内存和占用cpu。而且es为了性能,也不支持超过一万条数据以上的分页查询。解决深度分页问题,就是应该避免深度分页的操作(限制分页页数)。比如最多提供100页的展示等。

    3.scroll滚动搜索

    滚动搜索可以先查询出一些数据,然后再紧接着以此往下查询。在第一次查询的时候会有一个滚动id,相当于一个锚标记,随后再次滚动搜索需要上次的标记。每次搜索都是基于一个历史的数据快照,在查询期间,如果有数据变更,所有的内容不会变化

    4.批量查询mget

    未命中的结果也会返回json显示是否有值。

    POST   /_doc/_mget

    {

        "ids":[

            "1008",

            "1007",

            "555"

        ]

    }

    相关文章

      网友评论

          本文标题:ES深度分页与批量操作

          本文链接:https://www.haomeiwen.com/subject/poqvektx.html