日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python 使用elasticsearch 實(shí)現(xiàn)翻頁的三種方式

瀏覽:161日期:2022-07-15 17:02:48

python 使用elasticsearch 實(shí)現(xiàn)翻頁的三種方式

使用ES做搜索引擎拉取數(shù)據(jù)的時(shí)候,如果數(shù)據(jù)量太大,通過傳統(tǒng)的from + size的方式并不能獲取所有的數(shù)據(jù)(默認(rèn)最大記錄數(shù)10000),因?yàn)殡S著頁數(shù)的增加,會(huì)消耗大量的內(nèi)存,導(dǎo)致ES集群不穩(wěn)定。因此延伸出了scroll,search_after等翻頁方式。

一、from + size 淺分頁

'淺'分頁可以理解為簡單意義上的分頁。它的原理很簡單,就是查詢前20條數(shù)據(jù),然后截?cái)嗲?0條,只返回10-20的數(shù)據(jù)。這樣其實(shí)白白浪費(fèi)了前10條的查詢。

GET test/_search{ 'query': { 'bool': { 'filter': [ { 'term': { 'age': 28 } } ] } }, 'size': 10, 'from': 20, 'sort': [ { 'timestamp': { 'order': 'desc' }, '_id': { 'order': 'desc' } } ]}

from定義了目標(biāo)數(shù)據(jù)的偏移值,size定義當(dāng)前返回的數(shù)目。默認(rèn)from為0,size為10,即所有的查詢默認(rèn)僅僅返回前10條數(shù)據(jù)。

在這里有必要了解一下from/size的原理:因?yàn)閑s是基于分片的,假設(shè)有5個(gè)分片,from=100,size=10。則會(huì)根據(jù)排序規(guī)則從5個(gè)分片中各取回100條數(shù)據(jù)數(shù)據(jù),然后匯總成500條數(shù)據(jù)后選擇最后面的10條數(shù)據(jù)。

做過測試,越往后的分頁,執(zhí)行的效率越低。總體上會(huì)隨著from的增加,消耗時(shí)間也會(huì)增加。而且數(shù)據(jù)量越大,就越明顯!

二、scroll 深分頁

from+size查詢?cè)?0000-50000條數(shù)據(jù)(1000到5000頁)以內(nèi)的時(shí)候還是可以的,但是如果數(shù)據(jù)過多的話,就會(huì)出現(xiàn)深分頁問題。為了解決上面的問題,elasticsearch提出了一個(gè)scroll滾動(dòng)的方式。scroll 類似于sql中的cursor,使用scroll,每次只能獲取一頁的內(nèi)容,然后會(huì)返回一個(gè)scroll_id。根據(jù)返回的這個(gè)scroll_id可以不斷地獲取下一頁的內(nèi)容,所以scroll并不適用于有跳頁的情景。

# -*- coding: utf-8 -*-# @Time : # @Author : from elasticsearch import Elasticsearch es = Elasticsearch(hosts='ip:9200', timeout=20, max_retries=10, retry_on_timeout=True) # Elasticsearch 需要保持搜索的上下文環(huán)境多久 游標(biāo)查詢過期時(shí)間為10分鐘(10m)page = es.search( index='source_keyword_message', doc_type='source_keyword_message', scroll=’10m’, size=100, body={ 'query': {'match_all': {}}, } )# 游標(biāo)用于輸出es查詢出的所有結(jié)果sid = page[’_scroll_id’]# es查詢出的結(jié)果總量scroll_size = page[’hits’][’total’]# es查詢出的結(jié)果第一頁datas = page.get(’hits’).get(’hits’) while (scroll_size > 0): page = es.scroll(scroll_id=sid, scroll=’5m’) sid = page[’_scroll_id’] scroll_size = len(page[’hits’][’hits’]) datas = page.get(’hits’).get(’hits’) scroll=5m表示設(shè)置scroll_id保留5分鐘可用。 使用scroll必須要將from設(shè)置為0。默認(rèn)0 size決定后面每次調(diào)用_search搜索返回的數(shù)量

三、search_after 深分頁

scroll 的方式,官方的建議不用于實(shí)時(shí)的請(qǐng)求(一般用于數(shù)據(jù)導(dǎo)出),因?yàn)槊恳粋€(gè) scroll_id 不僅會(huì)占用大量的資源,而且會(huì)生成歷史快照,對(duì)于數(shù)據(jù)的變更不會(huì)反映到快照上。

search_after 分頁的方式是根據(jù)上一頁的最后一條數(shù)據(jù)來確定下一頁的位置,同時(shí)在分頁請(qǐng)求的過程中,如果有索引數(shù)據(jù)的增刪改查,這些變更也會(huì)實(shí)時(shí)的反映到游標(biāo)上。但是需要注意,因?yàn)槊恳豁摰臄?shù)據(jù)依賴于上一頁最后一條數(shù)據(jù),所以無法跳頁請(qǐng)求。

為了找到每一頁最后一條數(shù)據(jù),每個(gè)文檔必須有一個(gè)全局唯一值,官方推薦使用 _uid 作為全局唯一值,其實(shí)使用業(yè)務(wù)層的 id 也可以。

GET test/_search{ 'query': { 'bool': { 'filter': [ { 'term': { 'age': 28 } } ] } }, 'size': 20, 'from': 0, 'sort': [ { 'timestamp': { 'order': 'desc' }, '_id': { 'order': 'desc' } } ]} 使用search_after必須要設(shè)置from=0。 這里我使用timestamp和_id作為唯一值排序。 我們?cè)诜祷氐淖詈笠粭l數(shù)據(jù)里拿到sort屬性的值傳入到search_after。

使用sort返回的值搜索下一頁:

GET test/_search{ 'query': { 'bool': { 'filter': [ { 'term': { 'age': 28 } } ] } }, 'size': 10, 'from': 0, 'search_after': [ 1541495312521, 'd0xH6GYBBtbwbQSP0j1A' ], 'sort': [ { 'timestamp': { 'order': 'desc' }, '_id': { 'order': 'desc' } } ]}

到此這篇關(guān)于python 使用elasticsearch 實(shí)現(xiàn)翻頁的三種方式的文章就介紹到這了,更多相關(guān)python elasticsearch 翻頁內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩有吗在线观看| 国产精品夜夜夜| 欧美视频久久| 自拍自偷一区二区三区| 亚洲一区亚洲| 999国产精品999久久久久久| 国产高潮在线| 91免费精品| 中文av在线全新| 久久久久久网| 久久久久久久久久久妇女| 国产精品sm| 欧美亚洲综合视频| 日韩高清不卡一区| 国产日韩欧美高清免费| 国产欧美一区二区三区精品观看| 国产精品一站二站| 欧美国产专区| 电影91久久久| 久久男人天堂| 久久久一本精品| 欧美日韩色图| 国产亚洲精品久久久久婷婷瑜伽| 另类av一区二区| 亚洲午夜国产成人| 日韩激情一区二区| 亚洲欧美日韩综合国产aⅴ| 午夜在线播放视频欧美| 亚洲我射av| 国产欧美久久一区二区三区| 欧美成a人片免费观看久久五月天| 免费看一区二区三区| 精品中文在线| 日韩在线视频精品| 合欧美一区二区三区| 亚洲精品影视| 国产精品一区二区三区美女 | 蜜臀精品一区二区三区在线观看 | 久久超级碰碰| 欧美一级鲁丝片| 久久电影一区| 国产亚洲欧美日韩精品一区二区三区| 麻豆精品在线观看| 久久久成人网| 亚洲精品少妇| 久久激情综合网| 国产66精品| 久久高清一区| 国产精品一页| 久久精品不卡| 亚洲精选成人| 精品少妇一区| 91成人网在线观看| 欧美性www| 国产亚洲一区二区手机在线观看 | 国产精品原创| 美日韩精品视频| 久久精品五月| 极品裸体白嫩激情啪啪国产精品| 欧美日韩国产在线一区| 日韩成人精品一区二区三区| 国产精品啊啊啊| 1024精品一区二区三区| 日韩精品久久久久久| 日韩欧美1区| 亚洲综合色婷婷在线观看| 国产不卡av一区二区| 久久香蕉精品| 久久亚州av| 日韩制服丝袜先锋影音| 久久精品国产亚洲aⅴ| 悠悠资源网久久精品| 国产精品蜜月aⅴ在线| 久久久成人网| 亚洲综合三区| 精品99久久| 日韩高清一级| 激情婷婷综合| 国产精品传媒麻豆hd| 欧美日韩国产探花| 国产传媒在线观看| 日本欧美韩国一区三区| 在线成人动漫av| 麻豆精品视频在线观看视频| 日本大胆欧美人术艺术动态| xxxxx性欧美特大| 日本亚洲不卡| 婷婷精品进入| 91视频一区| 日本在线成人| 欧美一级精品| 中文字幕在线免费观看视频| 国产日韩视频在线| 视频一区中文字幕国产| 日韩精品欧美| 国产一区精品福利| 国产丝袜一区| 一区二区三区四区精品视频| 蜜臀91精品国产高清在线观看| 精品三级av在线导航| 亚洲精品婷婷| 男人天堂欧美日韩| 欧美精品激情| 国产99久久| 精品伊人久久| 婷婷成人av| 日韩在线观看一区二区| 亚洲精品极品少妇16p| 91欧美在线| 久久伊人国产| 国产精品亚洲欧美一级在线| 亚洲乱码久久| 蜜臀久久久99精品久久久久久| 欧美日韩国产v| 正在播放日韩精品| 成人国产精品| 久久中文字幕一区二区| 国产极品久久久久久久久波多结野| 婷婷视频一区二区三区| 欧美精品黄色| 欧美日韩一二三四| 涩涩av在线| 中文在线资源| 日韩欧美精品综合| 成人在线视频免费看| 麻豆91精品91久久久的内涵| 国产精品日本一区二区不卡视频| 日本va欧美va欧美va精品| 奇米亚洲欧美| 国产欧美精品| 国产精品99精品一区二区三区∴| 国产精品一区二区精品| 欧美日韩亚洲三区| 国产精品中文字幕制服诱惑| 亚洲精品乱码日韩| 免费的成人av| 亚洲乱亚洲高清| 欧美综合国产| 在线精品视频一区| 免费成人在线观看| 日本麻豆一区二区三区视频| 国产免费久久| 丁香婷婷久久| 亚洲精品字幕| 国产免费久久| 国内精品美女在线观看| 精品欧美视频| 精品国产aⅴ| 欧美aa一级| 欧美在线亚洲| 亚洲免费精品| 另类亚洲自拍| 日韩不卡一区二区三区| 欧美黄页在线免费观看 | 精品一区二区三区免费看| 国产精品成久久久久| 91精品国产福利在线观看麻豆| 亚洲国产影院| 一区二区不卡| 国产欧美一区二区三区国产幕精品 | 伊人久久成人| 蜜桃久久av一区| 日韩高清一区| 精品三级av| 99tv成人| 老牛影视一区二区三区| 啪啪亚洲精品| 国产在线观看91一区二区三区| 色在线视频观看| 国产视频一区免费看| 91精品国产自产观看在线 | 国产视频网站一区二区三区| 91成人小视频| 日韩精品2区| 亚洲一区久久| 欧美一区二区三区免费看| 色婷婷综合网| 亚洲精品一区二区妖精| 日韩精选在线| 精品久久中文| 蜜臀av免费一区二区三区| 综合亚洲视频| 精品成av人一区二区三区| 午夜电影亚洲| 国产欧美一区二区色老头| 国产美女高潮在线| 丝袜a∨在线一区二区三区不卡| 亚洲人成亚洲精品| 麻豆91小视频| 悠悠资源网久久精品| 国产乱论精品| 不卡中文一二三区| 国产欧美三级| 欧美freesex黑人又粗又大| 免费精品视频最新在线| 精品一区二区三区在线观看视频 | 国产精品日韩| 麻豆成人91精品二区三区| 精品捆绑调教一区二区三区| 亚洲欧洲专区|