【问题标题】:Scan And Scroll Query In ElasticSearch在 ElasticSearch 中扫描和滚动查询
【发布时间】:2017-02-16 19:37:21
【问题描述】:

我使用的是 ES 1.5 版本,我使用了滚动查询,id,它工作正常并返回滚动 id

GET /ecommerce_parts/_search?search_type=scan&scroll=3m

{
"query": { "match_all": {}},
"size": 1000
}

{
"scrollid": "c2Nhbjs1OzE4Okk4ckVkSld0UXdDU212UU1kNWZBU1E7MTc6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxNjpJOHJFZEpXdFF3Q1NtdlFNZDVmQVNROzIwOkk4ckVkSld0UXdDU212UU1kNWZBU1E7MTk6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxO3RvdGFsX2hpdHM6MTg0NjEwOw==",
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 184610,
"max_score": 0,
"hits": []
}
}

现在,当我传递滚动 ID 以检索文档集时,它会抛出错误

GET /_search/scroll?scroll=1m c2Nhbjs1OzE4Okk4ckVkSld0UXdDU212UU1kNWZBU1E7MTc6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxNjpJOHJFZEpXdFF3Q1NtdlFNZDVmQVNROzIwOkk4ckVkSld0UXdDU212UU1kNWZBU1E7MTk6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxO3RvdGFsX2hpdHM6MTg0NjEwOw==

{
"error": "ElasticsearchIllegalArgumentException[Malformed scrollId []]",
"status": 400
}

获取 /_search/scroll?scroll=3mc2Nhbjs1OzIzOkk4ckVkSld0UXdDU212UU1kNWZBU1E7MjE6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsyNTpJOHJFZEpXdFF3Q1NtdlFNZDVmQVNROzI0Okk4ckVkSld0UXdDU212UU1kNWZBU1E7MjI6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxO3RvdGFsX2hpdHM6MTg0NjEwOw==

以上两个查询都给了我一个错误,如何根据滚动 id 检索文档,如果我错了,请提出一个查询

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    对于后续请求,您应该像这样在 JSON 负载中发送滚动 ID:

    POST  /_search/scroll 
    {
        "scroll" : "1m", 
        "scroll_id" : "c2Nhbjs1OzE4Okk4ckVkSld0UXdDU212UU1kNWZBU1E7MTc6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxNjpJOHJFZEpXdFF3Q1NtdlFNZDVmQVNROzIwOkk4ckVkSld0UXdDU212UU1kNWZBU1E7MTk6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxO3RvdGFsX2hpdHM6MTg0NjEwOw==" 
    }
    

    在早期版本的 ES 中,您也可以这样做:

    POST /_search/scroll?scroll=1m&scroll_id=c2Nhbjs1OzE4Okk4ckVkSld0UXdDU212UU1kNWZBU1E7MTc6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxNjpJOHJFZEpXdFF3Q1NtdlFNZDVmQVNROzIwOkk4ckVkSld0UXdDU212UU1kNWZBU1E7MTk6SThyRWRKV3RRd0NTbXZRTWQ1ZkFTUTsxO3RvdGFsX2hpdHM6MTg0NjEwOw==
    

    【讨论】:

    • 感谢 Val 的评论,但它给了我以下错误。我使用的是 1.5 版本的 ES
    • { "error": "ElasticsearchIllegalArgumentException[Failed to decode scrollId]; 嵌套: IOException[Bad Base64 input character decimal 123 in array position 0]; ", "status": 400 }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多