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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

技术小胖子 2017-11-10 08:02:00 浏览614
展开阅读全文

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,如需转载请自行联系原作者




网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注