Example #1
0
 /**
  * @param IIndexable $object
  */
 public function saveToMySql(IIndexable $object)
 {
     $id = $object->getId();
     if (!$id) {
         KalturaLog::err("Object [" . get_class($object) . "] id [" . $object->getId() . "] could not be saved to MySql, id is empty");
         return false;
     }
     $searchObject = self::getMySqlSearchObject($object->getObjectIndexName(), $id);
     $fields = $object->getIndexFieldsMap();
     foreach ($fields as $field => $getterName) {
         $setterName = str_replace('_', '', $field);
         $getter = "get{$getterName}";
         $setter = "set{$setterName}";
         if (!method_exists($searchObject, $setter)) {
             continue;
         }
         $value = call_user_func(array($object, $getter));
         call_user_func(array($searchObject, $setter), $value);
     }
     $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaSearchDataContributor');
     $pluginsData = array();
     foreach ($pluginInstances as $pluginName => $pluginInstance) {
         KalturaLog::debug("Loading {$pluginName} search texts");
         $pluginData = null;
         try {
             $pluginData = $pluginInstance->getSearchData($object);
         } catch (Exception $e) {
             KalturaLog::err($e->getMessage());
             continue;
         }
         if ($pluginData) {
             KalturaLog::debug("Search data for {$pluginName} [{$pluginData}]");
             $pluginsData[] = $pluginData;
         }
     }
     if (count($pluginsData)) {
         $searchObject->setPluginData(implode(',', $pluginsData));
     }
     $searchObject->save();
 }
Example #2
0
 public static function getDynamicAttributes(IIndexable $object)
 {
     if ($object instanceof entry) {
         if (!is_null($object->getFromCustomData(self::QUIZ_DATA))) {
             return array(self::getDynamicAttributeName() => 1);
         }
     }
     return array();
 }
 /**
  * @param IIndexable $object
  * @return bool
  */
 public function deleteFromSphinx(IIndexable $object)
 {
     $id = $object->getIntId();
     $index = kSphinxSearchManager::getSphinxIndexName($object->getObjectIndexName());
     KalturaLog::debug('Deleting sphinx document for object [' . get_class($object) . '] [' . $object->getId() . ']');
     $sql = "delete from {$index} where id = {$id}";
     return $this->execSphinx($sql, $object);
 }
 /**
  * @param string $sql
  * @param IIndexable $object
  * @return bool
  */
 public function execSphinx($sql, IIndexable $object)
 {
     KalturaLog::debug($sql);
     $sphinxLog = new SphinxLog();
     $sphinxLog->setEntryId($object->getEntryId());
     $sphinxLog->setPartnerId($object->getPartnerId());
     $sphinxLog->setSql($sql);
     $sphinxLog->save(myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_SPHINX_LOG));
     if (!kConf::hasParam('exec_sphinx') || !kConf::get('exec_sphinx')) {
         return true;
     }
     $con = DbManager::getSphinxConnection();
     $ret = $con->exec($sql);
     if ($ret) {
         return true;
     }
     $arr = $con->errorInfo();
     KalturaLog::err($arr[2]);
     return false;
 }
Example #5
0
 public static function getDynamicAttributes(IIndexable $object)
 {
     if ($object instanceof entry) {
         $isQuiz = 0;
         if (!is_null($object->getFromCustomData(self::QUIZ_DATA))) {
             $isQuiz = 1;
         }
         $dynamicAttribute = array(self::getDynamicAttributeName() => $isQuiz);
         return $dynamicAttribute;
     }
     return array();
 }