Я хочу отправить массив данных (если это невозможно сделать с массивами, я не против преобразовать его в объект) в мой индекс Elasticsearch. Раньше я отправлял свой массив в базу данных в MySQL, а затем загружал его в Elasticsearch с помощью logstash.
Мне больше не нужна база данных, поэтому я надеялся сделать это без нее, но я не смог найти хорошую документацию / примеры для этого в 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')";
}
Вы можете использовать elasticsearch-PHP, официальный PHP-клиент для Elasticsearch.
(См. документация).
Вот еще один способ сделать это, используя только 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();
Других решений пока нет …