updateDocument() public method

Update document, using update script. Requires elasticsearch >= 0.19.0.
public updateDocument ( Document | Elastica\Script\AbstractScript $data, array $options = [] ) : Response
$data Document | Elastica\Script\AbstractScript Document with update data
$options array array of query params to use for query. For possible options check es api
return Response
 /**
  * @test
  */
 public function doUpdateExistingDocumentOnSave()
 {
     $id = 1;
     $data = 'foobar';
     $doc = $this->prophesizeFindDocument($id, $data);
     $this->index->refresh()->shouldBeCalled();
     $this->type->updateDocument($doc)->shouldBeCalled();
     self::assertTrue($this->cache->save($id, $data));
     self::assertEquals(serialize($data), $doc->get(Cache::VALUE_FIELD));
 }
Example #2
0
 /**
  * @param array $removeCities
  */
 public function removeCities($removeCities)
 {
     foreach ($removeCities as $departmentId => $newCities) {
         $document = $this->departmentType->getDocument($departmentId);
         $data = $document->getData();
         if (isset($data['citiesIds'])) {
             $cities = $data['citiesIds'];
             foreach ($newCities as $newCity) {
                 unset($cities[$newCity]);
             }
             $data['citiesIds'] = $cities;
             $document->setData($data);
             $this->departmentType->updateDocument($document);
         }
     }
 }
Example #3
0
 /**
  * Construit les données afin que celles-ci soient indexées (avec les fields corrects)
  * Méthode non testée et non utilisée pour le moment (Préférable de la tester avant..)
  *
  * @param CMbObject     $datum the datum you want to construct
  * @param Elastica\Type $type  the type where you want to index the data
  *
  * @return array
  */
 function indexingDatum($datum, $type)
 {
     $datum_to_index = $this->constructDatum($datum);
     $document = $type->createDocument($datum['object_id'], $datum_to_index);
     switch ($datum['type']) {
         case 'create':
             $type->addDocument($document);
             break;
         case 'store':
             $type->updateDocument($document);
             break;
         case 'delete':
             $type->deleteDocument($document);
             break;
         case 'merge':
             //nothing to do
             /*supprimer un des deux et faire un update de l'autre.*/
             break;
         default:
             return false;
     }
     $type->getIndex()->refresh();
     $this->deleteDatumTemporaryTable($datum['search_indexing_id']);
     return true;
 }