我想发送一个数据数组(如果不能用数组完成,我不介意将它转换为对象)到我的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')";
}
答案 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();