将数组或对象从php发送到Elasticsearch

时间:2017-12-05 10:34:54

标签: php elasticsearch logstash

我想发送一个数据数组(如果不能用数组完成,我不介意将它转换为对象)到我的Elasticsearch索引。我曾经将我的数组发送到MySQL中的数据库,然后使用logstash将其加载到Elasticsearch。 我不再需要数据库所以我希望在没有它的情况下完成这个,但我无法在PHP中找到它的好文档/示例。任何帮助都是相关的。

这是我生成数组的方式($ values []),它有3个参数$ exec_time(十进制),$ name(文本)和$ date(datetime):

for($i=0; $i<50;++$i){

  $date = date('Y-m-d H:i:s');

  if($name == "local")
        $i = $i + 4;

  $ch = $_SESSION['cURL'];
  $time_pre = microtime(true);
  $data = curl_exec($ch);
  $time_pro = microtime(true);
  $exec_time = $time_pro - $time_pre;

  $values[$i] = "('$exec_time', '$name', '$date')";
}

1 个答案:

答案 0 :(得分:1)

您可以使用elasticsearch-php,Elasticsearch的官方PHP客户端 (见documentation)。

这是另一种方法,只使用curl:

use Curl\Curl; // composer require php-curl-class/php-curl-class

$curl = new Curl();
$curl->setHeader('Content-Type', 'application/json');
$response = $curl->post('http://127.0.0.1:9200/index/type', array(
  'exec_time' => ...
  'name' => ...
  'date' => ...
));
$curl->close();