elasticsearch DELETE/\u search/scroll api不适用于正文中的scroll\u id,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch DELETE/\u search/scroll api不适用于正文中的scroll\u id,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch DELETE/\u search/scroll api不适用于正文中的scroll\u id

elasticsearch DELETE/\u search/scroll api不适用于正文中的scroll\u id,elasticsearch,nest,elasticsearch,Nest,我正在使用scroll进行搜索,搜索完成后,我必须清除scroll\u ID。我正在使用Nest,api调用如下所示 但我正在找回这个错误 { "error": { "root_cause": [ { "type": "action_request_validation_exception", "

我正在使用scroll进行搜索,搜索完成后,我必须清除scroll\u ID。我正在使用Nest,api调用如下所示 但我正在找回这个错误

{
    "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服务器,我假设它即将退役,根据文档,请求正文中的滚动id应该是正确的方式。 有人能解释一下为什么这不起作用吗?另外,是否可以使用Nest在参数中使用scroll_id进行删除?
提前感谢。

问题似乎是,在您的正文中,
scroll\u id
是作为字符串数组发送的,应该作为简单字符串发送:

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

问题似乎是,在您的正文中,
scroll\u id
作为字符串数组发送,而应该作为简单字符串发送:

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

我不这么认为。他们的文档说它可以是一个字符串或字符串数组。此外,字符串数组是Nest从类构造函数中接收的滚动id生成的。嗯,是的,实际上它可以是字符串或字符串列表。。。您能否在curl中运行相同的查询,即
curl-v-XDELETE-H'内容类型:application/json'localhost:9200/_search/scroll-d'{“scroll\u id”:[“…]”“
并用您得到的输出更新您的问题?我对curl不太熟悉,而且我的身份验证有点奇怪,因为我对curl知之甚少,所以不知道如何从命令行中将其分类。但是postman显然提供了所有api调用的curl版本,下面是它的外观。curl--location--request DELETE'http:/XXXX:5050/\u search/scroll'\--header'内容类型:application/json'\--data raw'{“scroll\u id”:[“fgluy2x1zgvy29udgv4df91dwlkdnf1zxj5vgkjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh,但是通过Nodejs的弹性客户端库使用
client.clearcroll()
。。。还没有解决,我不这么认为。他们的文档说它可以是一个字符串或字符串数组。此外,字符串数组是Nest从类构造函数中接收的滚动id生成的。嗯,是的,实际上它可以是字符串或字符串列表。。。您能否在curl中运行相同的查询,即
curl-v-XDELETE-H'内容类型:application/json'localhost:9200/_search/scroll-d'{“scroll\u id”:[“…]”“
并用您得到的输出更新您的问题?我对curl不太熟悉,而且我的身份验证有点奇怪,因为我对curl知之甚少,所以不知道如何从命令行中将其分类。但是postman显然提供了所有api调用的curl版本,下面是它的外观。curl--location--request DELETE'http:/XXXX:5050/\u search/scroll'\--header'内容类型:application/json'\--data raw'{“scroll\u id”:[“fgluy2x1zgvy29udgv4df91dwlkdnf1zxj5vgkjhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh,但是通过Nodejs的弹性客户端库使用
client.clearcroll()
。。。仍然无法解决邮递员是否可能未发送带有
DELETE
请求的请求正文?使用客户端调用clear scroll API时是否会出现相同的错误?您是否在Elasticsearch前面有一个代理,它会忽略
DELETE
请求的请求正文?是的,我在运行.Net应用程序时第一次在Fiddler中注意到它。NEST客户端产生的是我的postman测试中看到的。但是我们的ES服务器上有一个代理。我得核实一下,原来我们在ES面前的代理人就是罪魁祸首。谢谢您指出。邮递员是否可能没有发送带有
DELETE
请求的请求正文?使用客户端调用clear scroll API时是否会出现相同的错误?您是否在Elasticsearch前面有一个代理,它会忽略
DELETE
请求的请求正文?是的,我在运行.Net应用程序时第一次在Fiddler中注意到它。NEST客户端产生的是我的postman测试中看到的。但是我们的ES服务器上有一个代理。我得核实一下,原来我们在ES面前的代理人就是罪魁祸首。谢谢你指出这一点。