使用AWS进行弹性搜索 - cURL请求返回布尔值(false)而不是json

时间:2017-06-01 10:46:51

标签: php amazon-web-services curl elasticsearch amazon-ec2

我在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);

0 个答案:

没有答案