Paging in Elasticsearch kannst du mit einem "search_after" Query oder Scrolling. Die Scroll-API ist älter aber einfacher. Angenommen das ist der Query
GET /wazuh-alerts*/_search
{
"query": {
"match_all": { }
}
}
Das Ergebnis sieht in etwa so aus:
{
"took" : 13,
"timed_out" : false,
"_shards" : {
"total" : 30,
"successful" : 30,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 10000,
"relation" : "gte"
},
"max_score" : 1.0,
"hits" : [
{
[...]
}
]
}
}
Um die Scroll-API zu aktivieren hänge den GET Parameter "scroll" an die URL an.
GET /wazuh-alerts-4.x-2025*/_search?scroll=1m
{
"query": {
"match_all": { }
}
}
Das Schema des Ergebnis verändert sich dabei leicht.
{
"_scroll_id": "FGluY2x1ZGVfY29ud[...]QwaHY4dzlFdw==",
"took" : 13,
"timed_out" : false,
"_shards" : {
"total" : 30,
"successful" : 30,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 10000,
"relation" : "gte"
},
"max_score" : 1.0,
"hits" : [
{
[...]
}
]
}
}
Diese zusätzliche Scroll-ID am Beginn des Ergebnis kannst du jetzt verwenden, um in den Ergebnissen zu "blättern".
POST _search/scroll
{
"scroll": "1m",
"scroll_id": "FGluY2x1ZGVfY29ud[...]QwaHY4dzlFdw=="
}
Jeder zusätzliche Query, der mit dieser Scroll-ID abgesendet wird liefert somit die nächsten Ergebnisse für diese spezielle Abfrage und gleichzeitig eine neue Scroll-ID.