简体   繁体   English

了解Elasticsearch中的扫描和滚动

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM