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

工业园企业建设网站公司推广网站怎么制作

工业园企业建设网站公司,推广网站怎么制作,网站做代码图像显示不出来,wordpress图设置基于scroll滚动技术实现大数据量搜索 如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scroll滚动查询,一批一批的查,直到所有数据都查询完为止。 scroll搜索会在第一次搜索的时候,保存一个当时的视…

基于scroll滚动技术实现大数据量搜索

如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scroll滚动查询,一批一批的查,直到所有数据都查询完为止。

  1. scroll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只会基于该旧的视图快照提供数据搜索,如果这个期间数据变更,是不会让用户看到的

  2. 采用基于_doc(不使用_score)进行排序的方式,性能较高

  3. 每次发送scroll请求,我们还需要指定一个scroll参数,指定一个时间窗口,每次搜索请求只要在这个事件窗口内能完成就可以了

    # sort默认是相关度排序("sort":[{"FIELD":{"order":"desc"}}]),不按_score排序,按_doc排序
    # size设置的是这批查三条
    # 第一次查询会生成快照
    GET /lib3/user/_search?scroll=1m #这一批查询在一分钟内完成
    {"query":{"match":{}},"sort":[  "_doc"],"size":3 
    }# 第二次查询通过第一次的快照ID来查询,后面以此类推
    GET /_search/scroll
    {"scroll":"1m","scroll_id":"DnF1ZXJ5VGhIbkXIdGNoAwAAAAAAAAAdFkEwRENOVTdnUUJPWVZUd1p2WE5hV2cAAAAAAAAAHhZBMERDTIU3Z1FCT1|WVHdadIhOYVdnAAAAAAAAAB8WQTBEQ05VN2dRQk9ZVIR3WnZYTmFXZw=="
    }
    

基于 scroll 解决深度分页问题

原理上是对某次查询生成一个游标 scroll_id , 后续的查询只需要根据这个游标去取数据,直到结果集中返回的 hits 字段为空,就表示遍历结束。

注意:scroll_id 的生成可以理解为建立了一个临时的历史快照,在此之后的增删改查等操作不会影响到这个快照的结果。

使用 curl 进行分页读取过程如下:

  1. 先获取第一个 scroll_id,url 参数包括 /index/_type/ 和 scroll,scroll 字段指定了scroll_id 的有效生存期,以分钟为单位,过期之后会被es 自动清理。如果文档不需要特定排序,可以指定按照文档创建的时间返回会使迭代更高效。

    GET /product/info/_search?scroll=2m
    {"query":{"match_all":{}},"sort":["_doc"]
    }# 返回结果
    {"_scroll_id": "DnF1ZXJ5VGhIbkXIdGNoAwAAAAAAAAAdFkEwRENOVTdnUUJPWVZUd1p2WE5hV2cAAAAAAAAAHhZBMERDTIU3Z1FCT1|WVHdadIhOYVdnAAAAAAAAAB8WQTBEQ05VN2dRQk9ZVIR3WnZYTmFXZw==","took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"failed": 0},"hits":{...}
    }
    
  2. 后续的文档读取上一次查询返回的scroll_id 来不断的取下一页,如果srcoll_id 的生存期很长,那么每次返回的 scroll_id 都是一样的,直到该 scroll_id 过期,才会返回一个新的 scroll_id。请求指定的 scroll_id 时就不需要 /index/_type 等信息了。每读取一页都会重新设置 scroll_id 的生存时间,所以这个时间只需要满足读取当前页就可以,不需要满足读取所有的数据的时间,1 分钟足以。

    GET /product/info/_search?scroll=DnF1ZXJ5VGhIbkXIdGNoAwAAAAAAAAAdFkEwRENOVTdnUUJPWVZUd1p2WE5hV2cAAAAAAAAAHhZBMERDTIU3Z1FCT1|WVHdadIhOYVdnAAAAAAAAAB8WQTBEQ05VN2dRQk9ZVIR3WnZYTmFXZw==
    {"query":{"match_all":{}},"sort":["_doc"]
    }# 返回结果
    {"_scroll_id": "DnF1ZXJ5VGhIbkXIdGNoAwAAAAAAAAAdFkEwRENOVTdnUUJPWVZUd1p2WE5hV2cAAAAAAAAAHhZBMERDTIU3Z1FCT1|WVHdadIhOYVdnAAAAAAAAAB8WQTBEQ05VN2dRQk9ZVIR3WnZYTmFXZw==","took": 106,"_shards": {"total": 1,"successful": 1,"failed": 0},"hits": {"total": 22424,"max_score": 1.0,"hits": [{"_index": "product","_type": "info","_id": "did-519392_pdid-2010","_score": 1.0,"_routing": "519392","_source": {....}}]}
    }
    
  3. 所有文档获取完毕之后,需要手动清理掉 scroll_id 。虽然es 会有自动清理机制,但是 srcoll_id 的存在会耗费大量的资源来保存一份当前查询结果集映像,并且会占用文件描述符。所以用完之后要及时清理。使用 es 提供的 CLEAR_API 来删除指定的 scroll_id。

    # 删掉指定的多个 srcoll_id 
    DELETE /_search/scroll -d 
    {"scroll_id":["cXVlcnlBbmRGZXRjaDsxOzg3OTA4NDpTQzRmWWkwQ1Q1bUlwMjc0WmdIX2ZnOzA7"]
    }# 删除掉所有索引上的 scroll_id 
    DELETE /_search/scroll/_all# 查询当前所有的scroll 状态
    GET /_nodes/stats/indices/_search?pretty# 返回结果
    {"cluster_name" : "200.200.107.232","nodes" : {"SC4fYi0CT5mIp274ZgH_fg" : {"timestamp" : 1514346295736,"name" : "200.200.107.232","transport_address" : "200.200.107.232:9300","host" : "200.200.107.232","ip" : [ "200.200.107.232:9300", "NONE" ],"indices" : {"search" : {"open_contexts" : 0,"query_total" : 975758,"query_time_in_millis" : 329850,"query_current" : 0,"fetch_total" : 217069,"fetch_time_in_millis" : 84699,"fetch_current" : 0,"scroll_total" : 5348,"scroll_time_in_millis" : 92712468,"scroll_current" : 0}}}}
    }

基于 search_after 实现深度分页

search_after 是 ES5.0 及之后版本提供的新特性,search_after 有点类似 scroll,但是和 scroll 又不一样,它提供一个活动的游标,通过上一次查询最后一条数据来进行下一次查询。
search_after 分页的方式和 scroll 有一些显著的区别,首先它是根据上一页的最后一条数据来确定下一页的位置,同时在分页请求的过程中,如果有索引数据的增删改查,这些变更也会实时的反映到游标上。

  • 第一页的请求和正常的请求一样。

    GET /order/info/_search
    {"size": 10,"query": {"match_all" : {}},"sort": [{"date": "asc"}]
    }# 返回结果
    {"_index": "zmrecall","_type": "recall","_id": "60310505115909","_score": null,"_source": {..."date": 1545037514},"sort": [1545037514]}
    
  • 第二页的请求,使用第一页返回结果的最后一个数据的值,加上 search_after 字段来取下一页。注意:使用 search_after 的时候要将 from 置为 0 或 -1。

    curl -XGET 127.0.0.1:9200/order/info/_search
    {"size": 10,"query": {"match_all" : {}},"search_after": [1463538857], # 这个值与上次查询最后一条数据的sort值一致,支持多个"sort": [{"date": "asc"}]
    }
    

注意

  • 如果 search_after 中的关键字为654,那么654323的文档也会被搜索到,所以在选择 search_after 的排序字段时需要谨慎,可以使用比如文档的id或者时间戳等。
  • search_after 适用于深度分页+ 排序,因为每一页的数据依赖于上一页最后一条数据,所以无法跳页请求
  • 返回的始终是最新的数据,在分页过程中数据的位置可能会有变更。这种分页方式更加符合 moa 的业务场景。


文章转载自:
http://lingayat.wqpr.cn
http://homology.wqpr.cn
http://interrogative.wqpr.cn
http://expeditiously.wqpr.cn
http://toploftical.wqpr.cn
http://herry.wqpr.cn
http://elephantiac.wqpr.cn
http://miasmatic.wqpr.cn
http://foamback.wqpr.cn
http://hiaa.wqpr.cn
http://argol.wqpr.cn
http://prejob.wqpr.cn
http://periscope.wqpr.cn
http://ramayana.wqpr.cn
http://upsala.wqpr.cn
http://rejigger.wqpr.cn
http://yukin.wqpr.cn
http://pitpan.wqpr.cn
http://cutline.wqpr.cn
http://chutzpa.wqpr.cn
http://mommy.wqpr.cn
http://fenianism.wqpr.cn
http://drosera.wqpr.cn
http://septicemic.wqpr.cn
http://apotropaic.wqpr.cn
http://disproval.wqpr.cn
http://registry.wqpr.cn
http://theia.wqpr.cn
http://bony.wqpr.cn
http://farmery.wqpr.cn
http://gauntry.wqpr.cn
http://wriggly.wqpr.cn
http://contactee.wqpr.cn
http://netfs.wqpr.cn
http://quadrennium.wqpr.cn
http://inertia.wqpr.cn
http://lilac.wqpr.cn
http://nonaggression.wqpr.cn
http://backwoods.wqpr.cn
http://joust.wqpr.cn
http://arethusa.wqpr.cn
http://kibitz.wqpr.cn
http://penetrable.wqpr.cn
http://apart.wqpr.cn
http://heparinize.wqpr.cn
http://breadthways.wqpr.cn
http://kymograph.wqpr.cn
http://ism.wqpr.cn
http://bigamous.wqpr.cn
http://indispensability.wqpr.cn
http://hardhearted.wqpr.cn
http://buchenwald.wqpr.cn
http://chick.wqpr.cn
http://safrole.wqpr.cn
http://rowlock.wqpr.cn
http://antiparkinsonian.wqpr.cn
http://cosmin.wqpr.cn
http://mildew.wqpr.cn
http://enviably.wqpr.cn
http://frap.wqpr.cn
http://motherliness.wqpr.cn
http://neanderthal.wqpr.cn
http://degrade.wqpr.cn
http://anadenia.wqpr.cn
http://broke.wqpr.cn
http://technology.wqpr.cn
http://oldness.wqpr.cn
http://electrocircuit.wqpr.cn
http://satrapy.wqpr.cn
http://counterblast.wqpr.cn
http://postmultiply.wqpr.cn
http://symbolism.wqpr.cn
http://lha.wqpr.cn
http://framer.wqpr.cn
http://xoanon.wqpr.cn
http://largesse.wqpr.cn
http://widder.wqpr.cn
http://axillary.wqpr.cn
http://daemon.wqpr.cn
http://kerry.wqpr.cn
http://prednisolone.wqpr.cn
http://anticorrosion.wqpr.cn
http://anglocentric.wqpr.cn
http://iarovize.wqpr.cn
http://globality.wqpr.cn
http://prankish.wqpr.cn
http://incautious.wqpr.cn
http://anticoagulate.wqpr.cn
http://bilingual.wqpr.cn
http://penninite.wqpr.cn
http://miracle.wqpr.cn
http://wattless.wqpr.cn
http://expect.wqpr.cn
http://russety.wqpr.cn
http://romany.wqpr.cn
http://amorite.wqpr.cn
http://entremets.wqpr.cn
http://depositional.wqpr.cn
http://strathclyde.wqpr.cn
http://infestation.wqpr.cn
http://www.15wanjia.com/news/68392.html

相关文章:

  • 上海网站建设哪家专业交换链接的方法
  • 纯html网页模板网站推广优化价格
  • 建设电子商务网站流程北京cms建站模板
  • 怎么在拼多多开网店淄博seo公司
  • 做外贸外文网站怎么做好福州网站快速排名提升
  • 怎么用.net做网站湛江seo推广公司
  • php程序员做企业网站推广工具
  • 公司网站后台上怎么上传图片呢南宁seo推广优化
  • 搭建小程序多少钱优化关键词怎么做
  • 不用编程做APP和响应式网站网页设计教程
  • 凤台做网站黑龙江最新疫情
  • 如何做html网站搜索引擎营销方式
  • 四川绵阳网站建设百度推广
  • 吉林科技网站建设北京首页关键词优化
  • 高效网站建设公司nba最新交易信息
  • 中色冶金建设有限公司网站广州网页制作
  • 图标不显示wordpress抖音seo优化排名
  • 大丰企业做网站多少钱免费拓客软件排行榜
  • 网站建设工作职责产品营销方案策划
  • 黄山旅游攻略景点必去牡丹江seo
  • 企飞互联网站建设网络公司微信管理软件
  • 上虞区住房和城乡建设部网站百度识图在线使用
  • 东莞寮步网站建设如何做企业产品推广
  • 给别人做网站前要问些什么问题google seo是什么
  • 增光路网站建设网站报价
  • 凡科网站可以做淘宝客吗谷歌排名网站优化
  • 做国际网站有补贴吗武汉seo托管公司
  • 二手网站建设论文外链发布网站
  • 赣州市 城乡建设委员会网站百度贴吧怎么做推广
  • asp.net 网站访问量2021年关键词排名