elasticsearch 用于Elasticsearch的URL编码卷曲参数,elasticsearch,curl,urlencode,url-encoding,elasticsearch,Curl,Urlencode,Url Encoding" /> elasticsearch 用于Elasticsearch的URL编码卷曲参数,elasticsearch,curl,urlencode,url-encoding,elasticsearch,Curl,Urlencode,Url Encoding" />

elasticsearch 用于Elasticsearch的URL编码卷曲参数

elasticsearch 用于Elasticsearch的URL编码卷曲参数,elasticsearch,curl,urlencode,url-encoding,elasticsearch,Curl,Urlencode,Url Encoding,我想让cURL/Elasticsearch理解作为普通字符串传递的HTTP查询参数,同时由命令对其进行url编码 如果我运行此HTTP GET viacURL将查询提交给Elasticsearch: curl \ -H 'Content-Type: application/json' \ -XGET '127.0.0.1:9200/movies/movie/_search?q=%2Byear%3A%3E1980+%2Btitle%3Astar%20wars&pretty' 然后

我想让cURL/Elasticsearch理解作为普通字符串传递的HTTP查询参数,同时由命令对其进行url编码

如果我运行此HTTP GET via
cURL
将查询提交给Elasticsearch:

curl \
  -H 'Content-Type: application/json' \
  -XGET '127.0.0.1:9200/movies/movie/_search?q=%2Byear%3A%3E1980+%2Btitle%3Astar%20wars&pretty'
然后我就能够检索到预期的文档

但是,如果我运行此
cURL
查询:

curl \
   -H 'Content-Type: application/json' \
   --data-urlencode "pretty" \
   --data-urlencode "q=+year:>1980 +title:star wars&pretty" \
   -XGET '127.0.0.1:9200/movies/movie/_search'
然后我得到这个错误:

{
    "error": {
        "root_cause": [{
            "type": "json_parse_exception",
            "reason": "Unrecognized token 'pretty': was expecting ('true', 'false' or 'null')\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@7856627; line: 1, column: 8]"
        }],
        "type": "json_parse_exception",
        "reason": "Unrecognized token 'pretty': was expecting ('true', 'false' or 'null')\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@7856627; line: 1, column: 8]"
    },
    "status": 500
}
我正在使用:

  • cURL
    7.47.0版,应理解命令参数
    --数据urlencode
  • Elasticsearch 6.3.1
    • 将发送一篇帖子,并通过URL对正文进行编码。您必须使用才能发送GET请求并在URL中附加用
      --data urlencode
      指定的数据:

      curl-G-v\
      -H'内容类型:应用程序/json'\
      --数据urlencode“pretty=true”\
      --数据urlencode“q=+年份:>1980+标题:星球大战”\
      “127.0.0.1:9200/电影/电影/\u搜索”