scroll_id
:引用: 初始搜索请求和每个后续滚动请求返回一个新的滚动ID - 只应使用最新的滚动ID。
以下示例(摘自这里)让我感到困惑。首先是滚动初始化:
rs = es.search(index=['tweets-2014-04-12','tweets-2014-04-13'],
scroll='10s',
search_type='scan',
size=100,
preference='_primary_first',
body={
"fields" : ["created_at", "entities.urls.expanded_url", "user.id_str"],
"query" : {
"wildcard" : { "entities.urls.expanded_url" : "*.ru" }
}
}
)
sid = rs['_scroll_id']
然后进行循环:
tweets = [] while (1):
try:
rs = es.scroll(scroll_id=sid, scroll='10s')
tweets += rs['hits']['hits']
except:
break
这段代码能够正常运行,但我没看到sid
是在哪里更新的。我相信它是在Python客户端内部完成更新的,但我不理解它是如何实现的...