簡體   English   中英

如何使用 Scroll API elasticsearch 滾動數據

[英]How to scroll Data using Scroll API elasticsearch

我是麋鹿堆棧的新手

  • 我有試過這個,但沒有得到工作流..

  • 例如在搜索查詢下方執行

POST <index-name>/_search?scroll=2m
{
  "query": {"match_all": {}}
}
  • 並從此查詢中獲取 scroll_id 然后嘗試檢索下一批滾動搜索的結果。使用此
GET /_search/scroll
{
  "scroll_id" : "<scroll_id>"
}
  • 第一次得到結果
"took" : 2,
  "timed_out" : false,
  "terminated_early" : true,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 13059,
      "relation" : "eq"
    }
  • 我的問題是為什么當我嘗試使用相同的 scroll_id 再次滾動時出現錯誤
"caused_by" : {
      "type" : "search_context_missing_exception",
      "reason" : "No search context found for id"
  • 使用的版本
Kibana 7.9.3
Elastic Search 7.9.3

scroll_id值在每個響應中都會發生變化。 所以下一個搜索調用需要使用上一個搜索響應中的新滾動 ID。

你正確地開始

POST <index-name>/_search?scroll=2m
{
  "query": {"match_all": {}}
}

在您得到的響應中,名為_scroll_id的字段包含用於下一次調用的下一個滾動 ID(如游標),我們稱之為scroll_id_1

GET /_search/scroll
{
  "scroll_id" : "<scroll_id_1>",
  "scroll": "2m"
}

在下一個響應中,您將獲得一個新的_scroll_id值(我們稱之為scroll_id_2 ),您需要將其用於下一次調用:

GET /_search/scroll
{
  "scroll_id" : "<scroll_id_2>",
  "scroll": "2m"
}

你一直這樣做,直到你得到一個空的結果集,此時你可以清除搜索上下文

DELETE /_search/scroll
{
  "scroll_id" : "<scroll_id_n>"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM