首页 > 其他分享 >ES深度分页问题

ES深度分页问题

时间:2023-01-05 09:55:05浏览次数:44  
标签:快照 分页 1010 深度 查询 分片 数据 ES

简介:

由于es特殊的储存机制,单个索引的大量数据被均匀随机的存储在不同的分片上,列:每个分片可以存储一万条数据,分页需求:查询总数1000-1010的数据按时间排序,即第一百页的前十条。分布式存储无法保证这些数据都在同一个分片上。可能均匀地分布在不同分片当中。唯一的解决方法就是把每个分片的前1010条数据全部取出来,然后进行分页,数据总数=分片数*1010条数据,然后将数据总数按照时间排序,取出前1010条数据。

导致的问题:平凡的深度分页容易导致OOM,因为查询数据量过大导致ES查询和排序的时间也会加长。

解决方案:1.设置max_result_window参数。设置分页返回的最大数据,默认10000.这样设置只可以暂时解决问题,伴随着数据量增大OOM问题便会更加严重。

2.设置数据限制,参考淘宝,百度,谷歌等。越往后的数据对用户影响越小。

3.滚动查询:scoll search

滚动查询通过保存快照,查询时通过快照获取数据,这样的查询方式对于Client端不友好,因为数据的更新删除新增都不会影响快照。

4.search_after

这种方式是根据上一页的最后一条数据来确定下一页的位置,由于特殊的查询方式不支持跳页查询,只能以来上一页的数据

标签:快照,分页,1010,深度,查询,分片,数据,ES
From: https://www.cnblogs.com/zzdd/p/17026693.html

相关文章

  • postgresql/lightdb中覆盖自增列值
    PostgreSQL里的自动生成标识列identitycolumn和自动生成存储列generatedcolumn是非常不错的功能,不过他们的实现语法比较近似,容易弄混,本文将进行示例介绍。PGv10:......
  • SQL Access group by 使用注意事项
    SQLAccessgroupby使用注意事项在MSSQL中正常的语句:selectField1,sum(Field2)asField2nfromTableswheregroupbyField1orderbyField2desc在Access......
  • ESHelper
    usingNest;usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.Linq.Expressions;usingSystem.Threading.Tasks;namespac......
  • 使用Jmeter轻松实现AES加密测试
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试大家在自......
  • Django报错No module named django.core.urlresolvers
    当需要测试django能否解析网站根路径的URL,并将其对应到我们编写的某个视图函数上时,使用下面的语句fromdjango.core.urlresolversimportresolve执行代码时出现错误......
  • S2 - Lesson 13 - the Greenwood boys
    Words groupagroupofagroupofstudents popsinger clubafootballclub occasion   Content ThegreenwoodboysTheGreenwoodBoysareag......
  • [LeetCode] 2453. Destroy Sequential Targets
    Youaregivena 0-indexed array nums consistingofpositiveintegers,representingtargetsonanumberline.Youarealsogivenaninteger space.Youhave......
  • S2 - Lesson 12 - Goodbye and good luck
    Words luckgoodlucklucky luckily sailsailacrosstheAtlantic sailorsailinggosailing harborharbourattheharbour colorcolour proud......
  • profession computing -- week architecture
      Model-View-Controller(MVC)Pattern ......
  • 解决adb devices无法连接各种模拟器
    经常使用到模拟器的童鞋,如果在使用adbdevices命令时,发现出现“Listofdevicesattached”,模拟器USB调试都开启的情况下,也没有连接成功。这种情况一般都是模拟器adb的版......