1.准备服务器环境php
apt-get install apache2 php mysql-server apt-get install mysql-client phpmyadmin apt-get install libapache2-mod-php
2.下载安装xunsearchhtml
Xunsearch 极大程度下降的搜索开发的难度,除了常规的中文分词、字段检索、布尔语法等功能外, 还比其它免费的解决方案提供了用户急需的相关搜索、拼音搜索、结果高亮、搜索建议等等。mysql
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2 cd xunsearch-full-1.4.10 sh setup.sh
第一次安装的话,过程可能会稍显漫长,请没必要着急,您大可泡杯茶一边喝一边等待便可。git
3.待命令运行结束后,若是没有出错中断,则表示顺利安装完成,而后就能够启动/从新启动 xunsearch
的后台服务github
cd /usr/local/xunsearch bin/xs-ctl.sh start
4.检查php-sdk的运行条件,运行测试命令sql
cd sdk/php
util/RequiredCheck.php
5.下载安装繁简转换工具openccapache
OpenCC有独立的「一简对多繁」表、「一繁对多简」表和异体字表,保证没有混杂着异体字。并且能够方便地自定义地区习惯使用的异体字,兼容台湾、香港和海外地区不一样的习惯。json
apt-get install git git clone https://github.com/BYVoid/OpenCC apt-get install cmake doxygen cd opencc-1.0.4 make make install
6.安装opencc的php扩展api
git clone https://github.com/NauxLiu/opencc4php cd opencc4php apt-get install php-dev phpize ./configure make test make install
7.配置php扩展,使扩展能被apache和terminal识别服务器
vi /etc/php/7.0/apache2/conf.d/opencc.ini extension=opencc.so cp /etc/php/7.0/apache2/conf.d/opencc.ini /etc/php/7.0/cli/conf.d/ service apache2 restart /etc/init.d/php7.0-fpm restart
8.在sdk/php/lib中新建XST2SFilter.php
<?php class XST2SFilter implements XSDataFilter{ public function process($data,$cs=false){ $od=opencc_open('t2s.json'); foreach($data as &$item){ $item=opencc_convert($item,$od); } opencc_close($od); print_r($data); return $data; } }
9.首先创建索引库表,而后使用索引管理器创建索引,并测试
vi app/demo.ini project.name=demo project.default_charset=utf-8 server.index=8383 server.search=8384 [pid] type=id [subject] type=title [message] type=body [chrono] type=numeric util/Indexer.php --source=csv --clean demo --filter=lib/XST2SFilter 1,关于 xunsearch 的 DEMO 项目测试,项目测试是一个颇有意思的行爲!,1314336158 2,測試第二篇,这里是第二篇文章的内容,1314336160 3,项目测试第三篇,俗話說,无三不成礼,因此就有了第三篇,1314336168 util/Quest.php demo 测试
10.在/var/www/html中新建test.php
<html> <head> <meta http-equiv="content-type" content="text/html;charset=gbk" /> <title>xunsearch中文全文搜索在php程序中的应用</title> </head> <body> <h3><font color="blue">xunsearch全文搜索在php程序中应用</font></h3> <form action="test2.php" method="post"> 输入搜索的关键词:<input type="text" name="keyword" size="30" value="<?php echo $_POST['keyword'];?>" /> <input type="submit" name="sub" value="搜索" /> </form> <hr /> <?php echo "<pre />"; #引入接口文件,其实你懂的,就是一个类 require '/usr/local/xunsearch/sdk/php/lib/XS.php'; // 引入 xunsearch sdk if(isset($_POST['sub']) && $_POST['keyword'] != ''){ $keyword = trim($_POST['keyword']); //接收关键词 $xs = new XS('demo'); // demo 为项目名称,配置文件是:$sdk/app/demo.in i //$index = $xs->index; // 获取索引对象 $search = $xs->search; // 获取搜索对象 $search->setLimit(20); $docs = $search->setQuery($keyword)->search(); // 搜索 ‘ 测试’ echo "<table border='1' bordercolor='green' cellspacing='0'><tr><th>标题</th></tr>"; foreach ($docs as $doc) { $subject = $search->highlight($doc->subject); // 高亮处理标题 echo "<tr><td>".$subject."</td></tr>"; } echo "</table>"; // $search->setQuery($keyword); // // 获取前 6 个和默认搜索语句 "西湖" 相关搜索词 // $words = $search->getRelatedQuery(); // print_r($words); } ?>
php-sdk的帮助文档:http://www.xunsearch.com/doc/php/guide/php-sdk的API文档:http://www.xunsearch.com/doc/php/api/index