当前位置: 首页 > news >正文

购物网站建设需要多少钱网站建设 繁体

购物网站建设需要多少钱,网站建设 繁体,网站建设需要注意什么哪些,做网站一天打多少个电话深度分页出现原因 当我们需要查询的数据页数特别大的时候,比如from size 大于10000 的时候,可能出现“window is too large” 异常,如下网图: 查询语句如下 { "query": { "bool": { "must": [ {…
深度分页出现原因
  • 当我们需要查询的数据页数特别大的时候,比如from + size 大于10000 的时候,可能出现“window is too large” 异常,如下网图:

在这里插入图片描述

  • 查询语句如下
{
"query": {
"bool": {
"must": [
{
"match_all": { }
}
],
"must_not": [ ],
"should": [ ]
}
},
"from": 10000,
"size": 10,
"sort": [ ],
"aggs": { }
}
  • 保存信息解释为,当前信息超过了10000最大值,虽然只查询了5条数据,为什么elasticSearch需要计算10000 条数据,因为查询的时候,需要按照一定规则排序,es如果不指定排序字段,会更具相关度评分排序
图解深分页

在这里插入图片描述

  • 添加了10万条记录在exam_info索引中,并且elasticSearch是分布式部署的,那么这10W数据会分布在不同的分片上,假如又如上5个分片,那么5个分片的数据一定会是近似均匀的 每个2w条。
  • 现在需要查询10001 到11000 的这一千条信息,按照 A 字段排序,那么我们查询的时候需要 查询出 shard1 ~ shard 4 每个分片中10001 ~ 11000 以A排序的所有数据,排序后取前1000 个,才能得到我们想要的数据,因为shard1 ~ shard4 存储顺序并不以A排序所以我们要对每一个分片进行筛选后得到一个排序值
深分页异常
  • 每次有序查询都是分片中单独查询,在合并数据二次排序,这个二次排序过程是在heap(堆内存)中进行的,也就是单次查询数据越多,内存中汇总的数据就更多,数据越靠后,需要排序的数据越多,越容易导致OOM
  • elasticSearch为了规避这种情况,设置了一个阈值,max_result_window 默认值是10000,包含堆内存不被错误操作导致溢出
深分页解决方案一
  • 规避错误,将跳页功能删掉,不让直接查看第N页的数据,包括百度,google,淘宝等分页请求也是这么干的。如下:

在这里插入图片描述

深度分页解决方案二:滚动查询:Scroll Search(不推荐使用)
  • 在查询的时候带上scroll=1m
GET aim_crowd_package_search905/_search?scroll=1m
{{"query":{"bool":{"must":[{"match_all":{}}],"must_not":[],"should":[]}},"from":5020,"size":10,"sort":[],"aggs":{}}
}

在这里插入图片描述

  • 上述请求的结果包含一个_scroll_id,可以通过这个id来完成下一批次的请求,也就是elasticSearch帮我们圈了一批数据,第一次查询给了一个标记位_scroll_id,之后的查询我们只需用代码这个,elasticSearch会直接给我们查第二页的数据。如下图,第二次带上scroll_id,
  • 查询语句:
GET aim_crowd_package_search905/_search?scroll=1m
{{"query":{"scroll_id":"DXF1ZXJ5QW5kRmV0Y2gBAAAAAABSwL4WWmgwejdlZXNTZ1NZSWFYWDkzbTk2Zw==","bool":{"must":[{"match_all":{}}],"must_not":[],"should":[]}},"sort":[],"aggs":{}}
}

在这里插入图片描述

  • 如上案例看出 scroll search 查询的智能一页,一页给你返回,这样可能不满足很多C端口业务场景
  • 而且,elasticSearch为了限制资源,对scrolls的数量又一定限制,最多打开500个,可以通过集群设置修改:search.max_open_scroll_context
  • 不支持向前搜索
  • 每次搜后一页数据
  • 不适用于C端业务
深分页解决方案三:Search After
  • 第一点:按一定规则排序,例如自增id排序,查询第二页,带上 id > X, 此处X是第一页最后一条数据;这样每次只需用查询一页数据就能满足分页查询
  • 第二点:解决跳页问题:
    • 当跳页时候,无法获取到前一页数据,以上规则不适用
    • 缓存,空间换时间,每次查询预加载前后5页的id顺序数据,前端只支持10个页面跳转,这样无论那一页都能拿到前一页数据
http://www.yayakq.cn/news/906563/

相关文章:

  • 类似源码之家的网站谷歌网站地图
  • php网站建设设计制作方案大一网页设计实训总结
  • 做网站怎么推广2021网页游戏排行
  • 昆明专业做网站多少钱高明搜索seo
  • 集团网站建设调研报告无代码开发平台 开源
  • 网站建设公司怎么赚钱福州建设工程质量监督网站
  • 自己怎么做外贸网站新市区做网站
  • 做问卷用哪个网站美化wordpress
  • 做h的小说网站业务平台
  • 国内最好的旅游网站建设银行官方网站首页个人登录
  • 信息技术 网站建设教案超级工程网站建设
  • 网站模板缺少文件怎么办wordpress最多多少用户
  • 做网站课程报告wordpress大学主题3.5
  • 吐鲁番市建设局网站青岛网站制作专业
  • 什么行业需要做网站最新热搜榜
  • 郑州社交网站开发河南省和建设厅网站首页
  • 南宁手机平台网站建设南昌网站排名优化报价
  • 平和网站建设口碑好的网站设计制作价格
  • 深圳设计网站哪个好小程序开发费用明细怎么填
  • 中国手机网站怎么做网站二维码
  • 单位写材料素材网站网页图片不能正常显示的原因
  • 网站怎么做可以合法让别人充钱公司装修款怎么入账
  • 山东省建设厅教育网站二手交易网站建设目标
  • 餐饮型网站开发策划公司简介
  • 站内营销推广方式有哪些软件下载网站排行榜前十名
  • 天津网站建设公司加盟网站模板
  • 亲子网站源码wordpress设置多域名多站点
  • 网站管理规范服装网站建设市场分析
  • 网站建设公司如何推广wordpress 一直崩溃
  • 网站流量一直下降网站运营维护措施有哪些