Run a scrolling search
- POST also GET /_search/scroll/{scroll_id}
- POST also GET /_search/scroll
IMPORTANT: The scroll API is no longer recommend for deep pagination. If you need to preserve the index state while paging through more than 10,000 hits, use the search_after parameter with a point in time (PIT).
The scroll API gets large sets of results from a single scrolling search request.
To get the necessary scroll ID, submit a search API request that includes an argument for the scroll query parameter.
The scroll parameter indicates how long Elasticsearch should retain the search context for the request.
The search response returns a scroll ID in the _scroll_id response body parameter.
You can then use the scroll ID with the scroll API to retrieve the next batch of results for the request.
If the Elasticsearch security features are enabled, the access to the results of a specific scroll ID is restricted to the user or API key that submitted the search.
You can also use the scroll API to specify a new scroll parameter that extends or shortens the retention period for the search context.
IMPORTANT: Results from a scrolling search reflect the state of the index at the time of the initial search request. Subsequent indexing or document changes only affect later search and scroll requests.
- Index privileges:
read
Path Parameters
-
scroll_idstring ScrollIdoptional deprecated -
The scroll ID
Leave it out to use
/_search/scroll.
Query Parameters
-
scrollstring Duration · default: 1d The period to retain the search context for scrolling.
-
scroll_idstring ScrollIddeprecated The scroll ID
-
rest_total_hits_as_intboolean · default: false If true, the API response’s hit.total property is returned as an integer. If false, the API response’s hit.total property is returned as an object.
Response
-
tooknumberrequired -
The number of milliseconds it took Elasticsearch to run the request. This value is calculated by measuring the time elapsed between receipt of a request on the coordinating node and the time at which the coordinating node is ready to send the response. It includes:
- Communication time between the coordinating node and data nodes
- Time the request spends in the search thread pool, queued for execution
- Actual run time
It does not include:
- Time needed to send the request to Elasticsearch
- Time needed to serialize the JSON response
- Time needed to send the response to a client
-
timed_outbooleanrequired -
If
true, the request timed out before completion; returned results may be partial or empty. -
_shardsShardStatisticsrequired -
A count of shards used for the request.
-
failednumber uintrequired -
The number of shards the operation or search attempted to run on but failed.
-
successfulnumber uintrequired -
The number of shards the operation or search succeeded on.
-
totalnumber uintrequired -
The number of shards the operation or search will run on overall.
-
failuresShardFailure -
indexstring IndexName -
nodestring -
reasonErrorCauserequired -
typestringrequired -
The type of error
-
reasonstringnullable -
A human-readable explanation of the error, in English.
-
stack_tracestring -
The server stack trace. Present only if the
error_trace=trueparameter was sent with the request. -
caused_byErrorCause -
root_causeErrorCause -
suppressedErrorCause -
shardnumber -
statusstring -
primaryboolean -
skippednumber uint -
hitsHitsMetadatarequired -
The returned documents and metadata.
-
totaloneOf -
Total hit count information, present only if
track_total_hitswasn'tfalsein the search request. -
hitsHitrequired -
_indexstring IndexNamerequired -
_idstring Id -
_scorenumber | stringnullable -
_explanationExplanation -
descriptionstringrequired -
detailsExplanationDetailrequired -
descriptionstringrequired -
detailsExplanationDetail -
valuenumberrequired -
valuenumberrequired -
fieldsmap string to object -
highlightmap string to string -
inner_hitsmap string to InnerHitsResult -
<string>InnerHitsResult -
hitsHitsMetadatarequired -
matched_queriesoneOf -
_ignoredstring -
ignored_field_valuesmap string to FieldValue -
_shardstring -
_nodestring -
_routingstring -
_sourceobject -
_ranknumber -
_seq_nonumber SequenceNumber -
_primary_termnumber -
_versionnumber VersionNumber -
sortSortResults -
max_scorenumber | stringnullable -
aggregationsmap string to Aggregate -
_clustersClusterStatistics -
fieldsmap string to object -
max_scorenumber -
num_reduce_phasesnumber -
profileProfile -
shardsShardProfilerequired -
aggregationsAggregationProfilerequired -
breakdownAggregationBreakdownrequired -
build_aggregationnumberrequired -
build_aggregation_countnumberrequired -
build_leaf_collectornumberrequired -
build_leaf_collector_countnumberrequired -
collectnumberrequired -
collect_countnumberrequired -
initializenumberrequired -
initialize_countnumberrequired -
post_collectionnumber -
post_collection_countnumber -
reducenumberrequired -
reduce_countnumberrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
typestringrequired -
debugAggregationProfileDebug -
collection_strategystring -
total_bucketsnumber -
built_bucketsnumber -
result_strategystring -
has_filterboolean -
delegatestring -
delegate_debugAggregationProfileDebug -
chars_fetchednumber -
extract_countnumber -
extract_nsnumber -
values_fetchednumber -
collect_analyzed_nsnumber -
collect_analyzed_countnumber -
surviving_bucketsnumber -
ordinals_collectors_usednumber -
numeric_collectors_usednumber -
empty_collectors_usednumber -
deferred_aggregatorsstring -
segments_with_deleted_docsnumber -
filtersAggregationProfileDelegateDebugFilter -
results_from_metadatanumber -
querystring -
specialized_forstring -
segments_countednumber -
segments_collectednumber -
map_reducerstring -
brute_force_usednumber -
dynamic_pruning_attemptednumber -
dynamic_pruning_usednumber -
skipped_due_to_no_datanumber -
childrenAggregationProfile -
clusterstringrequired -
dfsDfsProfile -
statisticsDfsStatisticsProfile -
typestringrequired -
descriptionstringrequired -
timestring Duration -
time_in_nanosDurationValueUnitNanosrequired -
breakdownDfsStatisticsBreakdownrequired -
collection_statisticsnumberrequired -
collection_statistics_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
rewritenumberrequired -
rewrite_countnumberrequired -
term_statisticsnumberrequired -
term_statistics_countnumberrequired -
debugmap string to object -
childrenDfsStatisticsProfile -
knnDfsKnnProfile -
vector_operations_countnumber -
queryKnnQueryProfileResultrequired -
typestringrequired -
descriptionstringrequired -
timestring Duration -
time_in_nanosDurationValueUnitNanosrequired -
breakdownKnnQueryProfileBreakdownrequired -
advancenumberrequired -
advance_countnumberrequired -
build_scorernumberrequired -
build_scorer_countnumberrequired -
compute_max_scorenumberrequired -
compute_max_score_countnumberrequired -
count_weightnumberrequired -
count_weight_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
matchnumberrequired -
match_countnumberrequired -
next_docnumberrequired -
next_doc_countnumberrequired -
scorenumberrequired -
score_countnumberrequired -
set_min_competitive_scorenumberrequired -
set_min_competitive_score_countnumberrequired -
shallow_advancenumberrequired -
shallow_advance_countnumberrequired -
debugmap string to object -
childrenKnnQueryProfileResult -
rewrite_timenumberrequired -
fetchFetchProfile -
typestringrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
breakdownFetchProfileBreakdownrequired -
load_sourcenumber -
load_source_countnumber -
load_stored_fieldsnumber -
load_stored_fields_countnumber -
next_readernumber -
next_reader_countnumber -
process_countnumber -
processnumber -
debugFetchProfileDebug -
stored_fieldsstring -
fast_pathnumber -
childrenFetchProfile -
idstringrequired -
indexstring IndexNamerequired -
node_idstringrequired -
searchesSearchProfilerequired -
collectorCollectorrequired -
namestringrequired -
reasonstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
childrenCollector -
queryQueryProfilerequired -
breakdownQueryBreakdownrequired -
advancenumberrequired -
advance_countnumberrequired -
build_scorernumberrequired -
build_scorer_countnumberrequired -
create_weightnumberrequired -
create_weight_countnumberrequired -
matchnumberrequired -
match_countnumberrequired -
shallow_advancenumberrequired -
shallow_advance_countnumberrequired -
next_docnumberrequired -
next_doc_countnumberrequired -
scorenumberrequired -
score_countnumberrequired -
compute_max_scorenumberrequired -
compute_max_score_countnumberrequired -
count_weightnumberrequired -
count_weight_countnumberrequired -
set_min_competitive_scorenumberrequired -
set_min_competitive_score_countnumberrequired -
descriptionstringrequired -
time_in_nanosDurationValueUnitNanosrequired -
typestringrequired -
childrenQueryProfile -
rewrite_timenumberrequired -
shard_idnumberrequired -
pit_idstring Id -
_scroll_idstring ScrollId -
The identifier for the search and its search context. You can use this scroll ID with the scroll API to retrieve the next batch of search results for the request. This property is returned only if the
scrollquery parameter is specified in the request. - Reference
-
suggestmap string to Suggest -
terminated_earlyboolean