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));
 }
Пример #2
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));
 }
Пример #3
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));
 }
 /**
  * @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;
 }