我正在使用滚动进行搜索,搜索完成后必须清除scroll_ids。我正在使用Nest,并且api调用看起来像
elasticsearch - 删除/_search/scroll api不适用于主体中的scroll_id-LMLPHP但是我又回来了。

{
    "error": {
        "root_cause": [
            {
                "type": "action_request_validation_exception",
                "reason": "Validation Failed: 1: no scroll ids specified;"
            }
        ],
        "type": "action_request_validation_exception",
        "reason": "Validation Failed: 1: no scroll ids specified;"
    },
    "status": 400
}

但是,我可以使用scroll_id作为参数执行相同的api调用,并且工作正常。
我正在使用7.9版的ES服务器,并且我假设它已经淘汰了,并且根据文档,请求正文中的scroll_id是正确的方法。
谁能掩饰为什么这不起作用?另外,是否可以使用Nest使用参数中的scroll_id进行删除?
提前致谢。

最佳答案

问题似乎是在您的体内scroll_id是作为字符串数组发送的,它应该作为简单字符串发送:

DELETE /_search/scroll
{
  "scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}

07-26 03:20