Smile\ElasticsuiteCore\Index\IndexOperation::executeBulk PHP Method

executeBulk() public method

{@inheritDoc}
public executeBulk ( Smile\ElasticsuiteCore\Api\Index\Bulk\BulkRequestInterface $bulk )
$bulk Smile\ElasticsuiteCore\Api\Index\Bulk\BulkRequestInterface
    public function executeBulk(BulkRequestInterface $bulk)
    {
        $bulkParams = ['body' => $bulk->getOperations()];
        $rawBulkResponse = $this->client->bulk($bulkParams);
        /**
         * @var BulkResponseInterface
         */
        $bulkResponse = $this->objectManager->create('Smile\\ElasticsuiteCore\\Api\\Index\\Bulk\\BulkResponseInterface', ['rawResponse' => $rawBulkResponse]);
        if ($bulkResponse->hasErrors()) {
            foreach ($bulkResponse->aggregateErrorsByReason() as $error) {
                $sampleDocumentIds = implode(', ', array_slice($error['document_ids'], 0, 10));
                $errorMessages = [sprintf("Bulk %s operation failed %d times in index %s for type %s", $error['operation'], $error['count'], $error['index'], $error['document_type']), sprintf("Error (%s) : %s", $error['error']['type'], $error['error']['reason']), sprintf("Failed doc ids sample : %s", $sampleDocumentIds)];
                $this->logger->error(implode(" ", $errorMessages));
            }
        }
        return $bulkResponse;
    }