scroll method
Continue search using the scroll API.
Implementation
Future<SearchResult> scroll({
required String scrollId,
required Duration duration,
}) async {
final path = ['_search', 'scroll'];
final bodyMap = {
'scroll_id': scrollId,
'scroll': duration.inSeconds.toString() + 's',
};
final rs = await _transport.send(Request('GET', path, bodyMap: bodyMap));
rs.throwIfStatusNotOK(message: 'Failed to search scroll.');
final body = rs.bodyAsMap;
final hitsMap = body['hits'] as Map<String, dynamic>? ?? const {};
final totalCount = _extractTotalCount(hitsMap);
final results = _extractDocList(hitsMap);
return SearchResult(
totalCount,
results,
scrollId: body['_scroll_id'] as String,
);
}