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')); }
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)); }
/** * (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)); }
/** * 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)); }
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; }
/** * 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; }