/**
  * @param MetaInformationInterface $meta
  *
  * @return null|\Solarium\QueryType\Update\Query\Document\Document
  */
 public function createDocument(MetaInformationInterface $meta)
 {
     $fields = $meta->getFields();
     if (count($fields) == 0) {
         return null;
     }
     $document = parent::createDocument($meta);
     foreach ($fields as $field) {
         if (!$field instanceof Field) {
             continue;
         }
         $document->addField($field->getNameWithAlias(), $field->getValue(), $field->getBoost());
     }
     return $document;
 }
 /**
  * @param MetaInformationInterface $meta
  *
  * @return null|\Solarium\QueryType\Update\Query\Document\Document
  */
 public function createDocument(MetaInformationInterface $meta)
 {
     $fields = $meta->getFields();
     if (count($fields) == 0) {
         return null;
     }
     $document = parent::createDocument($meta);
     foreach ($fields as $field) {
         if (!$field instanceof Field) {
             continue;
         }
         $value = $field->getValue();
         if ($value instanceof Collection) {
             $document->addField($field->getNameWithAlias(), $this->mapCollection($field), $field->getBoost());
         } elseif (is_object($value)) {
             $document->addField($field->getNameWithAlias(), $this->mapObject($field), $field->getBoost());
         } else {
             $document->addField($field->getNameWithAlias(), $field->getValue(), $field->getBoost());
         }
     }
     return $document;
 }
 /**
  * @param MetaInformationInterface $metaInformation
  *
  * @return string
  */
 protected function createFieldList(MetaInformationInterface $metaInformation)
 {
     return implode(', ', $metaInformation->getFields());
 }