国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python 用scroll查詢大量es數(shù)據(jù)

HollisChuang / 1992人閱讀

摘要:游標(biāo)查詢查詢,可以用于對有效地執(zhí)行大批量的文檔查詢,而又不用付出深度分頁那種代價。啟動游標(biāo)查詢其中的表示游標(biāo)查詢窗口保持分鐘,如果一次取的數(shù)據(jù)量大可以設(shè)置為一個大一些的時間。完整代碼用獲取所有數(shù)據(jù)的完整代碼如下過濾的每次取的數(shù)據(jù)量

游標(biāo)查詢
scroll查詢,可以用于對 Elasticsearch 有效地執(zhí)行大批量的文檔查詢,而又不用付出深度分頁那種代價。
scroll查詢可以分為以下兩個步驟。

啟動游標(biāo)查詢

GET /host/_search?scroll=1m

其中的scroll=1m表示游標(biāo)查詢窗口保持1分鐘,如果一次取的數(shù)據(jù)量大可以設(shè)置為一個大一些的時間。
返回的字段中包含一個scroll_id, 接下來用這個字段可以獲取后續(xù)值。

循環(huán)獲取

循環(huán)獲取余下的值

GET /_search/scroll
{
    "scroll": "1m", 
    "scroll_id" : scroll_id
}

通過上一步得到的scroll_id,獲取余下的值。

完整代碼

用Python獲取所有數(shù)據(jù)的完整代碼如下

def get_all_es_data(url):
    # 過濾的query
    query = {}
    data = []
    # 每次取的數(shù)據(jù)量
    size = 10000
    scroll_id = None
    try:
        while size == 10000:
            if not scroll_id:
                query["size"] = 10000
                curr_url = url + "/_search?scroll=8m"
                response = requests.post(curr_url, json.dumps(query), headers={"content-type": "application/json"})
            else:
                curr_url = url + "_search/scroll?scroll=8m&scroll_id=" + scroll_id
                response = requests.get(curr_url)
            if response:
                response = json.loads(response.text)
                scroll_id = response["_scroll_id"]
                response_data = [doc["_source"] for doc in response["hits"]["hits"]]
                data.extend(response_data)
    except Exception as err:
        pass

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45172.html

相關(guān)文章

  • [零基礎(chǔ)學(xué)python]Python操作數(shù)據(jù)庫(2)

    摘要:那就在進(jìn)入到數(shù)據(jù)庫,看看。查詢數(shù)據(jù)在前面操作的基礎(chǔ)上,如果要從數(shù)據(jù)庫中查詢數(shù)據(jù),當(dāng)然也可以用指針來操作了。從操作中看出來了,已經(jīng)將數(shù)據(jù)庫中第二條的用戶名修改為了,用的就是語句。不過,要真的實現(xiàn)在數(shù)據(jù)庫中更新,還要運行這就大事完吉了。 回顧一下已有的戰(zhàn)果:(1)連接數(shù)據(jù)庫;(2)建立指針;(3)通過指針插入記錄;(4)提交將插入結(jié)果保存到數(shù)據(jù)庫。在交互模式中,先溫故,再知新。 >>> ...

    susheng 評論0 收藏0
  • ES分布式架構(gòu)及底層原理

    摘要:分布式架構(gòu)原理設(shè)計的理念就是分布式搜索引擎,底層實現(xiàn)還是基于的,核心思想是在多態(tài)機(jī)器上啟動多個進(jìn)程實例,組成一個集群。 es分布式架構(gòu)原理 elasticsearch設(shè)計的理念就是分布式搜索引擎,底層實現(xiàn)還是基于Lucene的,核心思想是在多態(tài)機(jī)器上啟動多個es進(jìn)程實例,組成一個es集群。一下是es的幾個概念: 接近實時es是一個接近實時的搜索平臺,這就意味著,從索引一個文檔直到文檔...

    Ocean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<