private function buildNews(SearchIndexInterface $index) { $repository = $this->get('universibo_legacy.repository.news.newsitem'); foreach ($repository->findAll() as $news) { $doc = new Document(); $doc->addField(Field::unStored('title', $news->getTitolo())); $doc->addField(Field::unStored('username', $news->getUsername())); $doc->addField(Field::unStored('content', $news->getNotizia())); $doc->addField(Field::unIndexed('dbId', $news->getIdNotizia())); $doc->addField(Field::unIndexed('type', 'news')); $index->addDocument($doc); } }
/** * Export an object recursivly, using associated metadata * * @param ClassMetadata $metadata * @param stdClass $object * @return array object */ protected function exportObject(ClassMetadata $metadata, $object) { $document = new Document(); $idGetter = 'get' . self::camelize($metadata->getIndex()->getIdProperty()); $document->addField(Field::unIndexed('_id', $object->$idGetter())); foreach ($metadata->getFields() as $property => $field) { $getter = 'get' . self::camelize($property); $value = $object->$getter(); if ($value && 'date' === $field->getType()) { $value = $value->format($field->getFormat()); } $type = $field->getType(); $encoding = mb_detect_encoding($value); $isStored = $field->getStore() === 'yes'; $isIndexed = $field->getIndex() != "no"; $isTokenized = $field->getIndex() == "analyzed"; $field = new Field($field->getIndexName(), $value, $encoding, $isStored, $isIndexed, $isTokenized); $document->addField($field); $doc[$property] = $value; } $document->addField(Field::unIndexed('_doc', json_encode($doc))); return $document; }