摘要:游标查询查询,可以用于对有效地执行大批量的文档查询,而又不用付出深度分页那种代价。启动游标查询其中的表示游标查询窗口保持分钟,如果一次取的数据量大可以设置为一个大一些的时间。完整代码用获取所有数据的完整代码如下过滤的每次取的数据量
游标查询
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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/45172.html
摘要:那就在进入到数据库,看看。查询数据在前面操作的基础上,如果要从数据库中查询数据,当然也可以用指针来操作了。从操作中看出来了,已经将数据库中第二条的用户名修改为了,用的就是语句。不过,要真的实现在数据库中更新,还要运行这就大事完吉了。 回顾一下已有的战果:(1)连接数据库;(2)建立指针;(3)通过指针插入记录;(4)提交将插入结果保存到数据库。在交互模式中,先温故,再知新。 >>> ...
摘要:分布式架构原理设计的理念就是分布式搜索引擎,底层实现还是基于的,核心思想是在多态机器上启动多个进程实例,组成一个集群。 es分布式架构原理 elasticsearch设计的理念就是分布式搜索引擎,底层实现还是基于Lucene的,核心思想是在多态机器上启动多个es进程实例,组成一个es集群。一下是es的几个概念: 接近实时es是一个接近实时的搜索平台,这就意味着,从索引一个文档直到文档...
阅读 1871·2021-11-23 09:51
阅读 1515·2021-11-19 09:40
阅读 3167·2021-11-11 11:01
阅读 1088·2021-09-27 13:34
阅读 1805·2021-09-22 15:56
阅读 2080·2019-08-30 15:52
阅读 1047·2019-08-30 14:13
阅读 3435·2019-08-30 14:10