[英]Understanding Scan and Scroll in Elasticsearch
Using ES and AngularJS to make a small search app. 使用ES和AngularJS制作一个小型搜索应用程序。 I'm trying to understand how to implement the scan and scroll feature in ES to use for pagination. 我试图了解如何在ES中实现扫描和滚动功能以用于分页。
The docs say to make a search request and then to include a 'search_type: scan' and 'scroll' parameters. 文档说要发出搜索请求,然后包含'search_type:scan'和'scroll'参数。
Do I just add those parameters to my current search request or do I need to make another search request and specify request as the scan and scroll search request? 我只是将这些参数添加到我当前的搜索请求中,还是需要发出另一个搜索请求并指定请求作为扫描和滚动搜索请求?
As documentation explain you need to make the first call using 作为文档解释,您需要使用第一次调用
GET /old_index/_search?search_type=scan&scroll=1m
{
"query": { "match_all": {}},
"size": 1000
}
The response to this request doesn't include any hits (means content you search) but scroll id like following 对此请求的响应不包括任何匹配(表示您搜索的内容),但滚动ID如下所示
{
"_scroll_id" : "c2Nhbjs1OzMwNTYzMTkxNjpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYzMTkxNTpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYyMjEwNzp4OEkwZE54eVR0cXI4cHAzU2I5UmlBOzMwNTYzNTE0NjpQZEhCSUZXeFJZU3daaDJKZXZCRmh3OzMwNTY0OTg4OTphdEE1OTN2NFFsYVY5ZjJ4SUxuVFpROzE7dG90YWxfaGl0czoyOTIwOw==",
"took" : 10,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2920,
"max_score" : 0,
"hits" : []
}
}
After this you can use normal call with the scroll_id GET /_search/scroll?scroll=1m&_scroll_idc2Nhbjs1OzMwNTYzMTkxNjpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYzMTkxNTpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYyMjEwNzp4OEkwZE54eVR0cXI4cHAzU2I5UmlBOzMwNTYzNTE0NjpQZEhCSUZXeFJZU3daaDJKZXZCRmh3OzMwNTY0OTg4OTphdEE1OTN2NFFsYVY5ZjJ4SUxuVFpROzE7dG90YWxfaGl0czoyOTIwOw== 在此之后,你可以使用正常的呼叫与scroll_id GET / _search /滚动?滚动=的1M _scroll_idc2Nhbjs1OzMwNTYzMTkxNjpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYzMTkxNTpTSkM2S0cxVFJIeUk1NnZWbGFUV1FnOzMwNTYyMjEwNzp4OEkwZE54eVR0cXI4cHAzU2I5UmlBOzMwNTYzNTE0NjpQZEhCSUZXeFJZU3daaDJKZXZCRmh3OzMwNTY0OTg4OTphdEE1OTN2NFFsYVY5ZjJ4SUxuVFpROzE7dG90YWxfaGl0czoyOTIwOw ==
_scroll_id can be in request or body _scroll_id可以在请求或正文中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.