官方安装手册地址:http://www.xunsearch.com/doc/php/guide/start.installation
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
tar -xjf xunsearch-full-latest.tar.bz2
cd xunsearch-full-1.4.11/
sh setup.sh##根据提示安装以下为安装成功界面
+=================================================+
| Installation completed successfully, Thanks you |
安装成功,感谢选择和使用 xunsearch 说明和注意事项: 1. 开启/重新开启 xunsearch 服务程序,命令如下: /usr/local/xunsearch/bin/xs-ctl.sh restart 强烈建议将此命令写入服务器开机脚本中 2. 所有的索引数据将被保存在下面这个目录中: /usr/local/xunsearch/data 如需要转移到其它目录,请使用软链接。 3. 您现在就可以在我们提供的开发包(SDK)基础上 开发您自己的搜索了。 目前只支持 PHP 语言,参见下面文档: /usr/local/xunsearch/sdk/php/README
+=================================================+
启动
##启动
/usr/local/xunsearch/bin/xs-ctl.sh start
INFO: starting server[xs-indexd] ... (BIND:127.0.0.1:8383)
INFO: starting server[xs-searchd] ... (BIND:127.0.0.1:8384)
运行条件
##检测 PHP-SDK 的运行条件
/usr/local/xunsearch/sdk/php/util/RequiredCheck.phpXunsearch PHP-SDK 运行需求检查
检查内容
本程序用于确认您的服务器配置是否能满足运行 Xunsearch PHP-SDK 的要求。
它将检查服务器所运行的 PHP 版本,查看是否安装了合适的PHP扩展模块,以及
确认 php.ini 文件是否正确设置。
项目 结果 用于 备注 PHP 版本 7.0.6 XS(core) PHP 5.2.0 或更高版本是必须的。 SPL 扩展 OK XS(core) SPL 扩展用于自动加载和对象戏法 PCRE 扩展 OK XSDocument, XSSearch 用于字符串切割、判断 编码转换 mbstring XSDocument, XSSearch 用于支持非 UTF-8 字符集 缓存模块 WARNING XS 用于缓存项目配置文件的解析结果 JSON 扩展 OK util.Quest, util.Indexer 用于读取或输出 JSON 格式的数据 XML 扩展 OK util.Indexer 用于读取导入 XML 格式的数据 MySQL 扩展 mysqli util.Indexer 用于读取导入 MySQL 的数据库 SQLite 扩 sqlite3 util.Indexer 用于读取导入 SQLite 的数据库
检查结果
共计 8 项通过,1 项警告,0 项错误。
您的服务器配置符合 Xunsearch/PHP-SDK 的最低要求。
如果您需要使用特定的功能,请关注上述的 WARNING 项。
配置
##配置 以BLOG为例
cd /usr/local/xunsearch/sdk/php/app
cp demo.ini blog.ini配置文件生成工具http://www.xunsearch.com/tools/iniconfig
vim blog.ini
project.name = blog
project.default_charset = utf-8
server.index = 8383
server.search = 8384
[id]
type = id
[subject]
type = title
[message]
type = body
[chrono]
type = numeric
[title]
type = title
[c_id]
type=numeric
[is_top]
type=numeric
[password]
type=string
~
##导入数据源
/usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://用户:密码@localhost/库名 --sql="SELECT id,title,c_id,message FROM thinkask_blog where status=1" --project=blog
##xunSearch 有接口导入,具体查看文档http://www.xunsearch.com/doc/php/guide/index.add定时导入
crontab -e
0 3 * * * /usr/local/shell/xunSearch.sh
crontab -l
#xunSearch.sh:
#!/bin/bash
/usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://用户:密码@localhost/库名 --sql="SELECT id,title,c_id,message FROM thinkask_blog where status=1" --project=blog > /dev/null 2>&1
PHP封装使用
##PHP封装使用
/**
- [xunSearch xunSearch处理]
- @Author Jerry
- @DateTime 2018-05-30T11:34:04+0800
- @Example eg:
- @return [type] [description]
*/
function xunSearch($keyword,$index='blog'){
if(!$keyword) return;
require_once '/usr/local/xunsearch/sdk/php/lib/XS.php';
$xs = new \XS($index); // demo 为项目名称,配置文件是:$sdk/app/demo.in i
// $index = $xs->index; // 获取索引对象
$search = $xs->search; // 获取搜索对象
$search->setLimit(20);
$docs = $search->setQuery()->search($keyword);
$info = [];
foreach ($docs as $doc) {
$info[$doc->id]['title'] = $search->highlight($doc->title);//高亮处理标题
$info[$doc->id]['href'] = '/b_d@'.encode($doc->c_id).'@'.encode($doc->id).'.html';//高亮处理标题
$info[$doc->id]['message'] = $search->highlight(strip_tags(htmlspecialchars_decode($doc->message)));//高亮处理标题
}
return $info;
}