天天看點

coreseek,php,mysql全文檢索部署(三)

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,如需轉載請自行聯系原作者