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

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 项目测试,项目测试是一个很有意思的行为!,1314336158

2,测试第二篇,这里是第二篇文章的内容,1314336160

3,项目测试第三篇,俗话说,无三不成礼,所以就有了第三篇,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: $valuen";

}

}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可访问配置即可。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容