protected function createSphinxMatchPhrase($text) { $condition = "ca_prefix<<{$text}<<ca_sufix"; $prefix = '@' . CaptionSearchPlugin::getSearchFieldName(CaptionSearchPlugin::SEARCH_FIELD_DATA); return $prefix . ' ' . $condition; }
public static function getCaptionSearchData(entry $entry) { $captionAssets = assetPeer::retrieveByEntryId($entry->getId(), array(CaptionPlugin::getAssetTypeCoreValue(CaptionAssetType::CAPTION))); if (!$captionAssets || !count($captionAssets)) { return null; } $data = array(); foreach ($captionAssets as $captionAsset) { /* @var $captionAsset CaptionAsset */ $syncKey = $captionAsset->getSyncKey(asset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET); $content = kFileSyncUtils::file_get_contents($syncKey, true, false); if (!$content) { continue; } $captionsContentManager = kCaptionsContentManager::getCoreContentManager($captionAsset->getContainerFormat()); if (!$captionsContentManager) { KalturaLog::err("Captions content manager not found for format [" . $captionAsset->getContainerFormat() . "]"); continue; } $content = $captionsContentManager->getContent($content); if (!$content) { continue; } $data[] = $captionAsset->getId() . " ca_prefix {$content} ca_sufix"; } $dataField = CaptionSearchPlugin::getSearchFieldName(CaptionSearchPlugin::SEARCH_FIELD_DATA); $searchValues = array($dataField => CaptionSearchPlugin::PLUGIN_NAME . ' ' . implode(' ', $data) . ' ' . CaptionSearchPlugin::SEARCH_TEXT_SUFFIX); return $searchValues; }
private function addCondition($conditionStr, IKalturaIndexQuery $query) { if (!is_null($conditionStr)) { $condition = "ca_prefix<<{$conditionStr}<<ca_sufix"; KalturaLog::debug("condition [" . print_r($condition, true) . "]"); $key = '@' . CaptionSearchPlugin::getSearchFieldName(CaptionSearchPlugin::SEARCH_FIELD_DATA); $query->addMatch("({$key} {$condition})"); } }