gpt4 book ai didi

curl - Elasticsearch/Curl不会读取Bulk API的换行符

转载 作者:行者123 更新时间:2023-12-02 22:50:02 25 4
gpt4 key购买 nike

我当前正在运行Windows 10,并在cmd.exe中使用curl_7_47_1_openssl_nghttp2_x64,我的问题是每当我尝试在Elasticsearch中使用批量API输入数据时,总是会遇到此错误:

Validation Failed 1: no requests added,

我已经研究了如何使用批量API(为每个输入添加新行)正确发送数据,但是 cURL不仅会读取我的换行语句。我的完整命令如下:
curl -XPOST localhost:9200/customer/external/_bulk?pretty --data-binary "{ \"index\": {\"_id\": \"1\"}} \n { \"name\": \"John Doe\" } \n {\"index\": {\"_id\": \"2\"}} \n {\"name\": \"Jane Doe\" }"

另外,其他信息包括: cURL在Windows中不读取单引号,而我在jSON中转义了双引号。

谢谢

最佳答案

您有两种解决方案:

您可以将批量查询存储在文件中。确保:

  • 双引号不能转义以及
  • 每行(也是最后一个)以换行符结尾(不是换行符\n,而是真正的换行符)
  • bulk.json:
    {"index": {"_id": "1"}}
    {"name": "John Doe" }
    {"index": {"_id": "2"}}
    {"name": "Jane Doe" }

    然后您可以运行此命令
    curl -XPOST localhost:9200/customer/external/_bulk?pretty --data-binary @/path/to/your/file

    另一种解决方案是简单地内联您拥有的相同数据,但使用 -d参数而不是用于发送文件的 --data-binary进行发送。
    curl -XPOST localhost:9200/customer/external/_bulk?pretty -d "
    {\"index\": {\"_id\": \"1\"}}
    {\"name\": \"John Doe\" }
    {\"index\": {\"_id\": \"2\"}}
    {\"name\": \"Jane Doe\" }
    "

    再次确保在最后一行之后包含换行符

    关于curl - Elasticsearch/Curl不会读取Bulk API的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197870/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com