/** * Index the particular entity * @param $entity */ public function index($entity, $indexName = null) { $this->esClient = $this->container->get('es_client'); // Index the course if ($entity instanceof Course) { $cDoc = new CourseDocumentType($entity, $this->container); $doc = $cDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); // Add the course to the Suggest documents if ($entity->getStatus() < 100) { $csDoc = new SuggestDocumentType($entity, $this->container); $doc = $csDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } } // Index the Credential if ($entity instanceof Credential) { $cDoc = new CredentialDocumentType($entity, $this->container); $doc = $cDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); if ($entity->getStatus() < 100) { $csDoc = new SuggestDocumentType($entity, $this->container); $doc = $csDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } } // Index the institution if ($entity instanceof Institution) { // Add the institution to document suggestions $isDoc = new SuggestDocumentType($entity, $this->container); $doc = $isDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } // Index the Language if ($entity instanceof Language) { // Add Language to document suggestions $isDoc = new SuggestDocumentType($entity, $this->container); $doc = $isDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } if ($entity instanceof Stream) { $sDoc = new SubjectDocumentType($entity, $this->container); $doc = $sDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); // Add the subject to document suggestions $ssDoc = new SuggestDocumentType($entity, $this->container); $doc = $ssDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } if ($entity instanceof Initiative) { $ssDoc = new SuggestDocumentType($entity, $this->container); $doc = $ssDoc->getDocument($this->getIndexName('es_index_name')); $this->esClient->index($doc); } if ($entity instanceof ESJob) { $jobDoc = new ESJobDocumentType($entity, $this->container); $doc = $jobDoc->getDocument($this->getIndexName('es_scheduler_index_name')); $this->esClient->index($doc); } if ($entity instanceof ESJobLog) { $jobLogDoc = new ESJobLogDocumentType($entity, $this->container); $doc = $jobLogDoc->getDocument($this->getIndexName('es_scheduler_index_name')); $this->esClient->index($doc); } }
/** * Retrieves the mapping for a particular type. * @return mixed */ public function getMapping() { $jDoc = new ESJobDocumentType(new ESJob('fake_id '), $this->container); $mapping = $jDoc->getMapping(); return array('created' => array('type' => 'date', 'format' => 'YYYY-MM-dd HH:mm:ss'), 'job' => array('properties' => $mapping)); }