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

您的位置:首頁技術文章
文章詳情頁

python 使用elasticsearch 實現翻頁的三種方式

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

python 使用elasticsearch 實現翻頁的三種方式

使用ES做搜索引擎拉取數據的時候,如果數據量太大,通過傳統的from + size的方式并不能獲取所有的數據(默認最大記錄數10000),因為隨著頁數的增加,會消耗大量的內存,導致ES集群不穩定。因此延伸出了scroll,search_after等翻頁方式。

一、from + size 淺分頁

'淺'分頁可以理解為簡單意義上的分頁。它的原理很簡單,就是查詢前20條數據,然后截斷前10條,只返回10-20的數據。這樣其實白白浪費了前10條的查詢。

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

from定義了目標數據的偏移值,size定義當前返回的數目。默認from為0,size為10,即所有的查詢默認僅僅返回前10條數據。

在這里有必要了解一下from/size的原理:因為es是基于分片的,假設有5個分片,from=100,size=10。則會根據排序規則從5個分片中各取回100條數據數據,然后匯總成500條數據后選擇最后面的10條數據。

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

二、scroll 深分頁

from+size查詢在10000-50000條數據(1000到5000頁)以內的時候還是可以的,但是如果數據過多的話,就會出現深分頁問題。為了解決上面的問題,elasticsearch提出了一個scroll滾動的方式。scroll 類似于sql中的cursor,使用scroll,每次只能獲取一頁的內容,然后會返回一個scroll_id。根據返回的這個scroll_id可以不斷地獲取下一頁的內容,所以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 需要保持搜索的上下文環境多久 游標查詢過期時間為10分鐘(10m)page = es.search( index='source_keyword_message', doc_type='source_keyword_message', scroll=’10m’, size=100, body={ 'query': {'match_all': {}}, } )# 游標用于輸出es查詢出的所有結果sid = page[’_scroll_id’]# es查詢出的結果總量scroll_size = page[’hits’][’total’]# es查詢出的結果第一頁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表示設置scroll_id保留5分鐘可用。 使用scroll必須要將from設置為0。默認0 size決定后面每次調用_search搜索返回的數量

三、search_after 深分頁

scroll 的方式,官方的建議不用于實時的請求(一般用于數據導出),因為每一個 scroll_id 不僅會占用大量的資源,而且會生成歷史快照,對于數據的變更不會反映到快照上。

search_after 分頁的方式是根據上一頁的最后一條數據來確定下一頁的位置,同時在分頁請求的過程中,如果有索引數據的增刪改查,這些變更也會實時的反映到游標上。但是需要注意,因為每一頁的數據依賴于上一頁最后一條數據,所以無法跳頁請求。

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

GET test/_search{ 'query': { 'bool': { 'filter': [ { 'term': { 'age': 28 } } ] } }, 'size': 20, 'from': 0, 'sort': [ { 'timestamp': { 'order': 'desc' }, '_id': { 'order': 'desc' } } ]} 使用search_after必須要設置from=0。 這里我使用timestamp和_id作為唯一值排序。 我們在返回的最后一條數據里拿到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' } } ]}

到此這篇關于python 使用elasticsearch 實現翻頁的三種方式的文章就介紹到這了,更多相關python elasticsearch 翻頁內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
青青久久av| 国产精品久久观看| 中文亚洲免费| 久久久久国产精品一区二区| 成人在线视频区| 国产成人精品一区二区三区视频 | 日韩福利一区| 久久精品国产亚洲aⅴ| 日韩精品免费观看视频| 国产精品一区2区3区| 国产精品久久久久久妇女| 日韩高清成人在线| 欧美久久一区二区三区| 国产精品115| 日韩久久精品网| 一区二区三区午夜视频| 美女精品一区二区| 成人看片网站| 国产欧美日韩影院| 亚洲夜间福利| 日韩av一区二区三区| 蜜桃精品在线| 91亚洲精品在看在线观看高清| 日韩欧美四区| 一区二区自拍| 精品视频国内| 日韩午夜av| 亚洲最新av| 久久精品国产福利| 日韩精品欧美大片| 美女久久久精品| 日韩中文欧美| 日本欧美在线看| 国产精品一区二区三区四区在线观看 | 精品在线网站观看| 国产手机视频一区二区 | 美女网站一区| 国产精品第十页| 亚洲一区免费| 视频在线在亚洲| 在线手机中文字幕| 国产精品xvideos88| 日韩中文av| 狠狠爱www人成狠狠爱综合网| 国产精品黄色| 久久成人福利| 国产精品亚洲欧美一级在线| 亚久久调教视频| 一区在线视频观看| 久久国产成人| 亚洲精品日本| 日韩欧美激情电影| 97国产成人高清在线观看| 午夜视频精品| 亚洲欧美日本国产| 91亚洲精品在看在线观看高清| 日韩精品免费一区二区三区| 天堂va蜜桃一区二区三区| 三级欧美在线一区| 欧美精品影院| 一区在线视频观看| 久久影院一区二区三区| 波多野结衣一区| 欧美亚洲网站| 欧美另类综合| 国产精品xxxav免费视频| 国产极品一区| 日本aⅴ亚洲精品中文乱码| 亚洲欧美一区在线| 影音先锋久久精品| 欧美久久一区二区三区| 日本精品在线播放| 免费日本视频一区| 久久伦理在线| 亚洲国产专区校园欧美| 国产精品宾馆| 日韩电影在线视频| 尤物网精品视频| 日韩不卡在线观看日韩不卡视频 | 一区二区三区午夜视频| 国产一区二区三区自拍| 99香蕉国产精品偷在线观看 | 91p九色成人| 日韩1区2区日韩1区2区| 日韩欧美一区二区三区在线视频 | 伊人影院久久| bbw在线视频| 国产美女撒尿一区二区| 中日韩男男gay无套| av在线日韩| 国产日产精品_国产精品毛片 | 精品三级久久| 久久人人99| 亚洲综合色婷婷在线观看| 香蕉成人av| 日韩成人精品一区二区三区| 日韩免费小视频| 国产亚洲精品精品国产亚洲综合| 亚洲国产综合在线看不卡| 国产探花一区| 中文字幕乱码亚洲无线精品一区| av综合电影网站| 成人亚洲一区二区| 欧美1区二区| 日韩av一级片| 国产精品jk白丝蜜臀av小说| 日韩区一区二| 日韩精品视频在线看| 久久国产日本精品| 亚洲二区精品| 性欧美69xoxoxoxo| 88xx成人免费观看视频库| 啪啪国产精品| 蜜桃一区二区三区在线观看| 亚洲二区视频| 日本激情一区| 91av一区| 亚洲精品在线国产| 亚洲毛片视频| 亚洲精品成人一区| 亚洲精品高潮| 亚洲精品精选| 亚洲精选久久| 在线亚洲欧美| 亚洲综合不卡| 中文字幕一区二区精品区| 日韩中文欧美在线| 丝袜诱惑一区二区| 久久久久国产精品一区二区| 九九综合九九| 亚洲一区日本| 国产专区一区| 国产精品一级在线观看| 牛牛精品成人免费视频| 91亚洲成人| 欧美一区免费| 日韩精品视频在线看| 88xx成人免费观看视频库| 蜜桃视频第一区免费观看| 国产99久久| 欧美日韩三区| 国产精品一卡| 亚洲欧美久久久| 给我免费播放日韩视频| 亚洲三级视频| 欧美午夜精彩| 激情不卡一区二区三区视频在线| 美女精品一区| 婷婷激情一区| 国模 一区 二区 三区| 日韩国产高清在线| 日韩中文字幕一区二区三区| 国产精品嫩草影院在线看| 精品国产aⅴ| 日韩午夜在线| 精品捆绑调教一区二区三区| 黄色在线观看www| 青青久久av| av不卡免费看| 日韩激情网站| 国产精品毛片一区二区在线看| 亚洲视频综合| 亚洲综合激情在线| 精品亚洲成人| 欧美日韩激情| 日韩一区二区三区高清在线观看| 国产精品流白浆在线观看| 伊人久久视频| 1000部精品久久久久久久久| 日韩精品三级| 日韩欧美自拍| 亚洲+小说+欧美+激情+另类| 国产一区二区三区网| 中文亚洲欧美| 欧美激情网址| 日韩网站在线| 久久亚洲人体| 夜久久久久久| 欧美精品1区| 欧美日韩国产在线一区| 国产亚洲一区二区三区啪| 日韩国产在线| 亚洲精品婷婷| 亚洲综合电影| 日本在线不卡视频一二三区| 色婷婷亚洲mv天堂mv在影片| 免费在线成人网| 热三久草你在线| 日本亚洲三级在线| 日韩在线免费| 国产欧美日韩精品一区二区免费 | 日韩av福利| 亚洲欧美日本国产| 国产一区二区三区精品在线观看| 亚洲欧美高清| 伊人网在线播放| 日本免费在线视频不卡一不卡二| 99精品一区| 国产精品成人自拍| 中文字幕一区二区三区四区久久|