/** * {@inheritdoc} */ public function updateMapping(ClassMetadata $classMetadata) { try { $elasticaIndex = new Index($this->client, $classMetadata->getIndexForRead()); $elasticaType = new Type($elasticaIndex, $classMetadata->type); $elasticaTypeMapping = new Mapping($elasticaType, $this->getMapping($classMetadata->fieldMappings)); $elasticaTypeMapping->setParam('_id', array('path' => $classMetadata->getIdentifier())); if ($classMetadata->parent) { $elasticaTypeMapping->setParam('_parent', array('type' => $classMetadata->parent)); } if ($classMetadata->dynamic) { $elasticaTypeMapping->setParam('dynamic', $classMetadata->dynamic); } $response = $elasticaType->setMapping($elasticaTypeMapping); } catch (\Exception $e) { return $e->getMessage(); } return 200 == $response->getStatus() ? true : $response->getError(); }