public function testConstructorWithFieldsAndBoosts()
 {
     $fields = array('id' => 1, 'name' => 'testname');
     $boosts = array('name' => 2.7);
     $doc = new Solarium_Document_ReadWrite($fields, $boosts);
     $this->assertEquals($fields, $doc->getFields());
     $this->assertEquals(2.7, $doc->getFieldBoost('name'));
 }
Пример #2
0
 public function testBuildAddXmlSingleDocumentWithFieldBoost()
 {
     $doc = new Solarium_Document_ReadWrite(array('id' => 1));
     $doc->setFieldBoost('id', 2.1);
     $command = new Solarium_Query_Update_Command_Add();
     $command->addDocument($doc);
     $this->assertEquals('<add><doc><field name="id" boost="2.1">1</field></doc></add>', $this->_builder->buildAddXml($command));
 }
Пример #3
0
 /**
  * (non-PHPdoc)
  * @see Solarium_Document_ReadOnly::getFields()
  */
 public function getFields()
 {
     if ($this->key == null || !isset($this->_fields[$this->key])) {
         throw new Exception('Solarium_Document_AtomicUpdate must have a unique-ID\'d key registered before it can be used to build update commands');
     }
     return parent::getFields();
 }
 private function updateDocumentFromPackage(\Solarium_Document_ReadWrite $document, Package $package, $redis)
 {
     $document->setField('id', $package->getId());
     $document->setField('name', $package->getName());
     $document->setField('description', $package->getDescription());
     $document->setField('type', $package->getType());
     $document->setField('trendiness', $redis->zscore('downloads:trending', $package->getId()));
     $document->setField('repository', $package->getRepository());
     if ($package->isAbandoned()) {
         $document->setField('abandoned', 1);
         $document->setField('replacementPackage', $package->getReplacementPackage() ?: '');
     } else {
         $document->setField('abandoned', 0);
         $document->setField('replacementPackage', '');
     }
     $tags = array();
     foreach ($package->getVersions() as $version) {
         foreach ($version->getTags() as $tag) {
             $tags[mb_strtolower($tag->getName(), 'UTF-8')] = true;
         }
     }
     $document->setField('tags', array_keys($tags));
 }
Пример #5
0
 /**
  * Populates document with bundle data.
  *
  * @param \Solarium_Document_ReadWrite $document
  * @param Bundle                       $bundle
  * @param \Solarium_Query_Helper       $helper
  */
 private function updateDocumentFromBundle(\Solarium_Document_ReadWrite $document, Bundle $bundle, \Solarium_Query_Helper $helper)
 {
     $document->setField('id', $bundle->getId());
     $document->setField('name', $bundle->getName());
     $document->setField('ownerName', $bundle->getOwnerName());
     $document->setField('ownerType', $bundle->getOwnerType());
     $document->setField('fullName', $bundle->getFullName());
     $document->setField('description', $bundle->getDescription());
     $document->setField('readme', $bundle->getReadme());
     $document->setField('totalScore', $bundle->getScore());
     $document->setField('state', $bundle->getState());
     $document->setField('avatarUrl', $bundle->getOwner()->getAvatarUrl());
     $document->setField('lastCommitAt', $helper->formatDate(clone $bundle->getLastCommitAt()));
     $document->setField('lastTweetedAt', null !== $bundle->getLastTweetedAt() ? $helper->formatDate($bundle->getLastTweetedAt()) : null);
     $keywords = array();
     foreach ($bundle->getKeywords() as $keyword) {
         $keywords[mb_strtolower($keyword->getValue(), 'UTF-8')] = true;
     }
     $document->setField('keywords', array_keys($keywords));
 }
Пример #6
0
 private function updateDocumentFromPackage(\Solarium_Document_ReadWrite $document, Package $package)
 {
     $document->setField('id', strtolower($package->getName()));
     $document->setField('name', $package->getName());
     $document->setField('description', $package->getDescription());
     $document->setField('type', $package->getType());
     $tags = array();
     foreach ($package->getVersions() as $version) {
         foreach ($version->getTags() as $tag) {
             $tags[mb_strtolower($tag->getName(), 'UTF-8')] = true;
         }
     }
     $document->setField('tags', array_keys($tags));
 }
 /**
  * @see schema.xml
  */
 protected function createDocument(MessageHandle $handle, $text, $revId)
 {
     $language = $handle->getCode();
     $translationTitle = $handle->getTitle();
     $title = Title::makeTitle($handle->getTitle()->getNamespace(), $handle->getKey());
     $wiki = wfWikiId();
     $messageid = $title->getPrefixedText();
     $globalid = "{$wiki}-{$messageid}-{$revId}/{$language}";
     $doc = new Solarium_Document_ReadWrite();
     $doc->wiki = $wiki;
     $doc->uri = $translationTitle->getCanonicalUrl();
     $doc->messageid = $messageid;
     $doc->globalid = $globalid;
     $doc->language = $language;
     $doc->content = $text;
     $doc->setField('group', $handle->getGroupIds());
     return $doc;
 }
Пример #8
0
 /**
  * Allows us to overload parent offsetGet with getTitle(), getText(), etc.
  * This is good when using $result->toArray()
  * @see Solarium_Document_ReadOnly::offsetGet()
  */
 public function offsetGet($key)
 {
     $value = null;
     $keyParts = explode('_', $key);
     $nolangKey = reset($keyParts);
     switch ($nolangKey) {
         case 'title':
             $value = $this->getTitle();
             break;
         case 'text':
             $value = $this->getText();
             break;
         case 'videoViews':
             $value = $this->getVideoViews();
             break;
         default:
             $value = parent::offsetGet(Utilities::field($nolangKey));
             // e.g. infoboxes_txt
             if (empty($value)) {
                 $value = parent::offsetGet($key);
             }
     }
     return $value;
 }