簡體   English   中英

PHP中的elasticsearch查詢和cURL沒有結果

[英]elasticsearch query and cURL in PHP no results

我試圖使用PHP執行cURL請求並將curl var_dump輸出分離為不同的變量?但是在php中沒有顯示任何內容,並且在PHP日志中沒有錯誤。

這是我的代碼:

$url='curl -XGET <my_url>:9200/logstash-index-*/_search?pretty -d \'
 {

    "size": 0,
     "aggs" : {
        "langs" : {
                "terms" : { 
                   "field" : "name" ,
                    "size": 0
                          }
                  }
             }
  }\'';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$data = ob_get_contents();
ob_end_clean();
var_dump($data);

感謝幫助!

您目前在這里混淆了兩件事:linux cURL命令和php_curl命令。

這是一個Linux命令,例如鍵入bash / sh:

curl -XGET <my_url>:9200/logstash-index-*/_search?pretty -d '
{
"size": 0,
 "aggs" : {
    "langs" : {
            "terms" : { 
               "field" : "name" ,
                "size": 0
                      }
              }
         }
}'

這是使用php_curl的相同示例:

$url = '<my_url>:9200/logstash-index-*/_search?pretty';
$data = array(
    "size" => 0,
    "aggs" => array (
        "langs" => array (
                "terms" => array ( 
                   "field" => "name" ,
                    "size" => 0
                )
        )
    )
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$return = curl_exec($ch) or die(curl_error());
curl_close($ch);
//var_dump($return);

//return is json_encoded, you can decode it to have an array
$array_return = json_decode($return,true);

$aggregationsArray = array(); 
foreach($array_return['aggregations']['name']['buckets'] as $person) 
{
    $aggregationsArray[$person['key']] = $person['doc_count']; 
}
var_dump($aggregationsArray);

Edit1:發布數據必須為json_encoded
Edit2:返回值是json_encoded,使用json_decode對其進行解碼
Edit3:添加自定義循環

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM