public function bulkIndex(array $documents)
{
if (empty($documents)) {
return;
}
$payload = '';
foreach ($documents as $document) {
$payload .= $this->serializer->getIndexMetadata($document) . "\n";
$payload .= $this->serializer->getIndexDocument($document) . "\n";
}
$result = $this->client->request('POST', "/{$this->indexName}/_bulk", new Message(array('Content-Type' => 'application/json'), $payload));
if ($result->headers['status'] !== 201 && $result->headers['status'] !== 200) {
throw new RuntimeException('Wrong HTTP status received from Elasticsearch: ' . $result->headers['status']);
}
$this->flush();
}