code: public function bulkIndexDocuments(array $documents)
      {
          $documentMap = array();
          $mainTranslationsEndpoint = $this->endpointResolver->getMainLanguagesEndpoint();
          $mainTranslationsDocuments = array();
  
          foreach ($documents as $translationDocuments) {
              foreach ($translationDocuments as $document) {
                  $documentMap[$document->languageCode][] = $document;
  
                  if ($mainTranslationsEndpoint !== null && $document->isMainTranslation) {
                      $mainTranslationsDocuments[] = $this->getMainTranslationDocument($document);
                  }
              }
          }
  
          foreach ($documentMap as $languageCode => $translationDocuments) {
              $this->doBulkIndexDocuments(
                  $this->endpointRegistry->getEndpoint(
                      $this->endpointResolver->getIndexingTarget($languageCode)
                  ),
                  $translationDocuments
              );
          }
  
          if (!empty($mainTranslationsDocuments)) {
              $this->doBulkIndexDocuments(
                  $this->endpointRegistry->getEndpoint($mainTranslationsEndpoint),
                  $mainTranslationsDocuments
              );
          }
      }
docs: Indexes an array of documents.
  
  Documents are given as an array of the array of documents. The array of documents
  holds documents for all translations of the particular entity.
  
  Notes:
  - Does not force a commit on solr, depends on solr config, use {@commit} if you need that.
  - On large amounts of data make sure to iterate with several calls to this function with a limited
  set of documents, amount you have memory for depends on server, size of documents, & PHP version.
  
  @param \eZ\Publish\SPI\Search\Document[][] $documents