XunSearch初探 ubuntu16.04 进行安装简单使用

来源:互联网 发布:四字网络流行语 编辑:程序博客网 时间:2024/06/05 04:56

1 安装
1.1 安装依赖环境

     apt-get install php build-essential zlib1g-dev  php-mysql -y
 1.2 安装xunSearch程序
     ./setup.sh --prefix=/usr/local/xunsearch 

2 启动

     /usr/local/bin/xs-ctl.sh restart

3 测试

     $prefix = /usr/local/xunsearch     $prefix/sdk/php/util里面执行:     ./Indexer.php --source=csv --clean demo

4 加入开机启动
centos编辑:

     /etc/rc.d/rc.local

ubuntu编辑:

     /etc/rc.local

添加启动项:

/usr/local/search/bin/xs-ctl.sh start

这样再次就可以了:ps -ef | grep search 就可以查看到 1个主进程3个辅助进程。

第二部分:基础样例测试
2.1 demo中csv库的测试
输入【建立索引库】:
进入到执行目录:

    cd /usr/local/search/sdk/php/util

开启csv方式测试:

./Indexer.php --source=csv --clean demo

加入如下三条数据:

1,关于 xunsearch 的 DEMO 项目测试,项目测试是一个很有意思的行为!,13143361582,测试第二篇,这里是第二篇文章的内容,13143361603,项目测试第三篇,俗话说,无三不成礼,所以就有了第三篇,1314336168

最后使用回车结束,然后使用ctrl+D结束输入。
测试输出【搜索测试工具】:

     ./Quest.php demo 项目

就可以显示结果了。
2.2 user中的sql库测试
新建mysql
创建数据库及数据表:

CREATE TABLE `users` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号,主键,自增',  `username` varchar(200) DEFAULT NULL COMMENT '用户名',  `passwd` varchar(200) DEFAULT NULL COMMENT '密码',  `phone` int(11) DEFAULT NULL COMMENT '手机号',  `content` text COMMENT '信息',  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8

插入数据:随便插入数据即可。
创建配置文件:

/usr/local/search/sdk/php/app# nano user.ini

配置文件引导:http://www.xunsearch.com/tools/iniconfig
配置完成内容如下:

project.name = user[id]type = id[username]type = title[passwd][content]type = body

截至到目前为止:准备完成。
建立 xunsearch 索引【建立索引库】 。
默认的demo格式:–source=mysql://[user[:passwd]@]host/dbname[/table]

./Indexer.php --source=mysql://root:flzx_3QC@192.168.50.145/XunSearch/users --sql="select * from users" --clean user

注意:此处的sql语句不要加分号。
执行查询:

./Quest.php user jingshan

可以查询到结果
//感恩、草根、协同、创新

第三部分:结合php的基础使用
3.1 新建项目
新建任意.php文件,包含系统XS.php文件,这样就可以自动引入 XS、XSException、XSDocument、XSIndex、XSSearch、XSTokenizer对象
简单创建代码如下:

include "/usr/local/search/sdk/php/lib/XS.php";try{  $xs = new XS('user');  $doc = new XSDocument;}catch (XSException $e){  echo $e->getMessage();}

3.2 异常
如3.1 基础异常使用即可。
3.3 文档
类似于msyql值里面的一条行记录,几种赋值方式,推荐setField(array());可以使用foreach循环显示。
代码如下:

include "/usr/local/search/sdk/php/lib/XS.php";try{  $xs = new XS('user');  $doc = new XSDocument;  $doc->setFields(array(  'username' => 'jingshan2',  'passwd' => '123123',  'phone'=>'13880425377',  'content'=>'真的吗?'  )); // 用数组进行批量赋值  foreach($doc as $name => $value){  echo "$name: $value\n";  }}catch (XSException $e){  echo $e->getMessage();}

3.4 索引
索引使用:

$xs = new XS('user');$index = $xs->index;

针对索引,可以进行增删改查文档
添加:

$data = array(  'pid' => 234, // 此字段为主键,必须指定  'subject' => '测试文档的标题',  'message' => '测试文档的内容部分',  'chrono' => time());// 创建文档对象$doc = new XSDocument;$doc->setFields($data);// 添加到索引数据库中$index->add($doc);

更新:

$data = array(  'pid' => 234, // 此字段为主键,是进行文档替换的唯一标识  'subject' => '测试文档的标题',  'message' => '测试文档的内容部分',  'chrono' => time());// 创建文档对象$doc = new XSDocument;$doc->setFields($data);// 更新到索引数据库中$index->update($doc);

删除:

按主键删除:$index->del('123'); // 删除主键值为 123 的记录$index->del(array('123', '789', '456')); // 同时删除主键值为 123, 789, 456 的记录按字段索引此删除:$index->del('abc', 'subject'); // 删除字段 subject 上带有索引词 abc 的所有记录$index->del(array('abc', 'def'), 'subject'); // 删除字段 subject 上带有索引词 abc 或 def 的所有记录

清空索引:

$index->clean();

平滑重建索引:

// 宣布开始重建索引$index->beginRebuild();// 然后在此开始添加数据...$index->add($doc);...// 告诉服务器重建完比$index->endRebuild();

索引缓冲区:知道即可。
3.5 搜索
创建搜索对象:

$search = $xs->search;

典型搜索做法:

$search = $xs->search; // 获取 搜索对象$query = 'jingshan'; // 这里的搜索语句很简单,就一个短语$search->setQuery($query); // 设置搜索语句//$search->addWeight('subject', 'xunsearch'); // 增加附加条件:提升标题中包含 'xunsearch' 的记录的权重//$search->setLimit(5, 0); // 设置返回结果最多为 5 条,并跳过前 10 条$docs = $search->search(); // 执行搜索,将搜索结果文档保存在 $docs 数组中$count = $search->count(); // 获取搜索结果的匹配总数估算值echo "count:",$count;foreach($docs as $doc_v){       var_dump($doc_v);     //echo $doc_v->username;}

快速搜索做法:

$count = $search->count('项目测试'); $docs = $search->search('项目测试');

搜索中的串接操作:
忽略:类似命令链的方式进行操作。
搜索日志:
忽略
3.6 分词接口
忽略:

第四部分:配置文件
使用配置工具进行简单的配置即可。
第五部分:管理索引
简单的索引对增删改查
第六部分:使用搜索
进行普通的搜索,获取搜索的结果及,设置搜索内容。分页。
第七部分:生成demo
使用创建方式:

./SearchSkel.php -p user -o /root

将生成的框架文件,进行web可访问配置即可。

0 0