in parquet_flask/aws/es_middleware.py [0:0]
def query_with_scroll(self, dsl, querying_index=None):
scroll_timeout = '30s'
index = self.__validate_index(querying_index)
dsl['size'] = 10000 # replacing with the maximum size to minimize number of scrolls
params = {
'index': index,
'size': 10000,
'scroll': scroll_timeout,
'body': dsl,
}
first_batch = self._engine.search(**params)
total_size = self.get_result_size(first_batch)
current_size = len(first_batch['hits']['hits'])
scroll_id = first_batch['_scroll_id']
while current_size < total_size: # need to scroll
scrolled_result = self._engine.scroll(scroll_id=scroll_id, scroll=scroll_timeout)
scroll_id = scrolled_result['_scroll_id']
scrolled_result_size = len(scrolled_result['hits']['hits'])
if scrolled_result_size == 0:
break
else:
current_size += scrolled_result_size
first_batch['hits']['hits'].extend(scrolled_result['hits']['hits'])
return first_batch