/** * Create sphinx search engine object for the given table type. * * @param Memcached_DataObject $target * @param string $table * @param out &$search_engine SearchEngine object on output if successful * @ return boolean hook return */ function onGetSearchEngine(Memcached_DataObject $target, $table, &$search_engine) { if (common_config('sphinx', 'enabled')) { if (!class_exists('SphinxClient')) { throw new ServerException('Sphinx PHP extension must be installed.'); } $engine = new SphinxSearch($target, $table); if ($engine->is_connected()) { $search_engine = $engine; return false; } } // Sphinx disabled or disconnected return true; }
function getSearchEngine($table) { require_once INSTALLDIR . '/lib/search_engines.php'; static $search_engine; if (!isset($search_engine)) { $connected = false; if (common_config('sphinx', 'enabled')) { $search_engine = new SphinxSearch($this, $table); $connected = $search_engine->is_connected(); } // unable to connect to sphinx' search daemon if (!$connected) { if ('mysql' === common_config('db', 'type')) { $search_engine = new MySQLSearch($this, $table); } else { $search_engine = new PGSearch($this, $table); } } } return $search_engine; }