Выше curl
запрос является допустимым запросом, фактически, если у вас есть индекс и данные, вы можете проверить вывод вашей команды.
Я попробовал его в своей системе и индексе ES, и он дал мне правильный ответ.
curl -v -X GET "localhost:9500/querytime/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"query_string" : {
"query" : "(avengers) OR (big apple)",
"default_field" : "movie_name"
}
}
}'
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 9500 (#0)
> GET /querytime/_search?pretty HTTP/1.1
> Host: localhost:9500
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 156
>
* upload completely sent off: 156 out of 156 bytes
< HTTP/1.1 200 OK
< content-type: application/json; charset=UTF-8
< content-length: 905
<
{
"took" : 4,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : 0.14874382,
"hits" : [
{
"_index" : "querytime",
"_type" : "_doc",
"_id" : "1",
"_score" : 0.14874382,
"_source" : {
"movie_name" : "Avengers: Infinity War"
}
}
]
}
}
Как упомянуто в официальном руководстве команды curl, если вы используете систему на основе *nix
, тогда вы можете искать ниже в руководстве curl
.
-G, --get При использовании этого параметра все данные, указанные с помощью -d, --data, --data-binary или --data-urlencode, будут использоваться в HTTP. GET-запрос вместо POST-запроса, который в противном случае использовался бы. Данные будут добавлены в URL с помощью символа «?» разделитель
Как объяснено в этом SO ответе, от веб-сервера также зависит синтаксический анализ тела в GET-запросе.