Smile\ElasticsuiteCore\Index\Bulk\BulkResponse::aggregateErrorsByReason PHP Method

aggregateErrorsByReason() public method

{@inheritDoc}
    public function aggregateErrorsByReason()
    {
        $errorByReason = [];
        foreach ($this->getErrorItems() as $item) {
            $operationType = current(array_keys($item));
            $itemData = $item[$operationType];
            $index = $itemData['_index'];
            $documentType = $itemData['_type'];
            $errorData = $itemData['error'];
            $errorKey = $operationType . $errorData['type'] . $errorData['reason'] . $index . $documentType;
            if (!isset($errorByReason[$errorKey])) {
                $errorByReason[$errorKey] = ['index' => $itemData['_index'], 'document_type' => $itemData['_type'], 'operation' => $operationType, 'error' => ['type' => $errorData['type'], 'reason' => $errorData['reason']], 'count' => 0];
                $errorByReason[$errorKey]['count'] = 0;
            }
            $errorByReason[$errorKey]['count']++;
            $errorByReason[$errorKey]['document_ids'][] = $itemData['_id'];
        }
        return array_values($errorByReason);
    }