我在AWS(亚马逊网络服务)上有一个弹性搜索实例,所有索引都已设置且状态正常,当我使用Kibana运行一些测试时,我正在按预期获得json响应,但是当我尝试运行此时通过我的网络应用程序使用cURL我似乎没有得到任何响应,除了'成功'。
当我从curl中获取var_dump响应时,我只得到一个bool(false)值而不是预期的json响应。任何想法为什么在使用下面的cURL方法时这似乎不会返回json?
网址(为安全起见而更改) https://search-myapp-text-search-xxxxxxxxxxxxxxxxxjaa2h2t5q.eu-west-2.es.amazonaws.com/
// Kibana控制台
GET _search
{
"query": {
"bool": {
"should": [
{
"match": {
"text": "facebook advice"
}
}
],
"minimum_number_should_match": 1,
"filter": {
"term": {
"accountid": "12"
}
}
}
}
}
在我的应用程序的PHP代码中,我只是按如下方式执行cURL请求: -
$accountid = 12;
$queryArray = [
'query' => [
'bool' => [
"filter" => [
"term" => [ "accountid" => $accountid ]
],
"should" => [
[ "match" => [ "text" => $term ] ]
],
"minimum_should_match" => 1
]
]
];
$query = json_encode($queryArray);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, self::$url.'live/_search');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
$curlResult = curl_exec($curl);
curl_close($curl);
var_dump($curlResult);