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