7.動态添加php擴充子產品,使php支援sphinx的類和方法
首先下載下傳源碼包:
root@CC-57:~# wget http://pecl.php.net/get/sphinx-1.3.0.tgz
root@CC-57:~# cd coreseek-3.2.14/csft-3.2.14/api/libsphinxclient/
root@CC-57:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# ./configure; make; make install
root@CC-57:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# cd
root@CC-57:~# tar zxvf sphinx-1.3.0.tgz
root@CC-57:~# cd sphinx-1.3.0
root@CC-57:~/sphinx-1.3.0# /var/www/xxxx/php-cgi/bin/phpize
root@CC-57:~/sphinx-1.3.0# ./configure --with-php-config=/var/www/xxxx/php-cgi/bin/php-config --with-sphinx
root@CC-57:~/sphinx-1.3.0# make; make install
root@CC-57:~/sphinx-1.3.0# cd
root@CC-57:~# cp /root/sphinx-1.3.0/modules/sphinx.so /var/www/xxxx/php-cgi/ext/
root@CC-57:~# vi /var/www/xxxx/php-cgi/etc/php.ini
添加 extension=sphinx.so
root@CC-57:~# /var/www/xxxx/php-cgi/sbin/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm done
查詢頁面代碼:
$keyword = urldecode(trim(strip_tags($_GET['keyword'])));
echo 'keyword=='.$keyword;
if ($keyword) {
// sphinx伺服器位址
$server = '114.113.152.186';
// 端口
$port = 9312;
// 索引名 為*時表示搜尋所有索引
$indexName = 'ccvms_video_main';
// 分頁頁碼
// $page = intval($_GET['page']) > 1 ? intval($_GET['page']) : 1;
// 每頁顯示的數量
$pageSize = 30;
$sphinx = new SphinxClient();
// 建立連接配接
$sphinx->SetServer($server, $port);
// 連接配接逾時時間(非常必要,比如sphinx伺服器挂了等異常情況) 機關為s,秒
// $sphinx->SetConnectTimeout(3);
// 最大查詢時間 機關為ms,毫秒
// $sphinx->SetMaxQueryTime(2000);
// 按分頁取結果
// $sphinx->SetLimits(($page-1)*$pageSize, $pageSize); //第一個參數為offset,第二個參數為limit
// 模式
$sphinx->SetMatchMode(SPH_MATCH_ALL);
//$sphinx->SetMatchMode(SPH_MATCH_ALL);
// 取到的原始資料
$orgDatas = $sphinx->query($keyword, $indexName);
echo 'orgDatas==';
print_r($orgDatas);
// 調試用,如果有錯誤的話,可以列印$errors的值
$errors = $sphinx->GetLastError();
echo 'errors==';
var_dump($errors);
}
本文轉自ljl_19880709 51CTO部落格,原文連結:http://blog.51cto.com/luojianlong/1345683,如需轉載請自行聯系原作者