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