updateDocuments() 공개 메소드

Array of \Elastica\Document as input. Index and type has to be set inside the document, because for bulk settings documents, documents can belong to any type and index
public updateDocuments ( array $docs ) : ResponseSet
$docs array Array of Elastica\Document
리턴 Elastica\Bulk\ResponseSet Response object
예제 #1
0
 /**
  * @param Document[] $documents
  * @param Closure    $errorHandler
  */
 protected function batchUpdate(array $documents, Closure $errorHandler)
 {
     $count = count($documents);
     if ($count === 0) {
         return;
     }
     if ($this->verbose) {
         array_map(function (Document $document) {
             $data = $document->getData();
             dump($data);
         }, $documents);
     }
     $this->validateFields($documents);
     try {
         $responseSet = $this->elastica->updateDocuments($documents);
         $failedSnsidList = [];
         $versionList = [];
         foreach ($responseSet as $response) {
             $this->parseResponse($response, $failedSnsidList, $versionList);
         }
         if ($failedSnsidList) {
             call_user_func($errorHandler, $failedSnsidList);
         }
         if (is_callable($this->versionHandler)) {
             call_user_func($this->versionHandler, $versionList);
         }
     } catch (\Exception $exception) {
         if (is_callable($this->errorHandler)) {
             call_user_func($this->errorHandler, $exception);
         }
         $this->elastica = $this->makeElastica();
         // Try to keep going on updating
     }
 }
예제 #2
0
파일: Elastica.php 프로젝트: phpfour/ah
 /**
  * Uses _bulk to send documents to the server.
  *
  * Array of \Elastica\Document as input. Index and type has to be
  * set inside the document, because for bulk settings documents,
  * documents can belong to any type and index
  *
  * @param  array|\Elastica\Document[]           $docs Array of Elastica\Document
  * @return \Elastica\Bulk\ResponseSet           Response object
  * @throws \Elastica\Exception\InvalidException If docs is empty
  * @link http://www.elasticsearch.org/guide/reference/api/bulk.html
  */
 public function updateDocuments(array $docs)
 {
     return $this->client->updateDocuments($docs);
 }