摘要:游標查詢查詢,可以用于對有效地執行大批量的文檔查詢,而又不用付出深度分頁那種代價。啟動游標查詢其中的表示游標查詢窗口保持分鐘,如果一次取的數據量大可以設置為一個大一些的時間。完整代碼用獲取所有數據的完整代碼如下過濾的每次取的數據量
游標查詢
scroll查詢,可以用于對 Elasticsearch 有效地執行大批量的文檔查詢,而又不用付出深度分頁那種代價。 scroll查詢可以分為以下兩個步驟。
啟動游標查詢
GET /host/_search?scroll=1m
其中的scroll=1m表示游標查詢窗口保持1分鐘,如果一次取的數據量大可以設置為一個大一些的時間。
返回的字段中包含一個scroll_id, 接下來用這個字段可以獲取后續值。
循環獲取
循環獲取余下的值
GET /_search/scroll { "scroll": "1m", "scroll_id" : scroll_id }
通過上一步得到的scroll_id,獲取余下的值。
完整代碼用Python獲取所有數據的完整代碼如下
def get_all_es_data(url): # 過濾的query query = {} data = [] # 每次取的數據量 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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45172.html
摘要:那就在進入到數據庫,看看。查詢數據在前面操作的基礎上,如果要從數據庫中查詢數據,當然也可以用指針來操作了。從操作中看出來了,已經將數據庫中第二條的用戶名修改為了,用的就是語句。不過,要真的實現在數據庫中更新,還要運行這就大事完吉了。 回顧一下已有的戰果:(1)連接數據庫;(2)建立指針;(3)通過指針插入記錄;(4)提交將插入結果保存到數據庫。在交互模式中,先溫故,再知新。 >>> ...
摘要:分布式架構原理設計的理念就是分布式搜索引擎,底層實現還是基于的,核心思想是在多態機器上啟動多個進程實例,組成一個集群。 es分布式架構原理 elasticsearch設計的理念就是分布式搜索引擎,底層實現還是基于Lucene的,核心思想是在多態機器上啟動多個es進程實例,組成一個es集群。一下是es的幾個概念: 接近實時es是一個接近實時的搜索平臺,這就意味著,從索引一個文檔直到文檔...
閱讀 1892·2021-11-23 09:51
閱讀 1535·2021-11-19 09:40
閱讀 3208·2021-11-11 11:01
閱讀 1105·2021-09-27 13:34
閱讀 1835·2021-09-22 15:56
閱讀 2122·2019-08-30 15:52
閱讀 1061·2019-08-30 14:13
閱讀 3473·2019-08-30 14:10