Blogger Information
Blog 27
fans 0
comment 1
visits 46243
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
Xunsearch安装和使用
学习使我快乐
Original
1789 people have browsed it

一、Xunsearch安装:

1、官网(http://xunsearch.com)下载

wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2

2、解压

tar -jxvf xunsearch-full-1.4.11.tar.bz2

3、进入目录

cd xunsearch-full-1.4.11

4、安装(无需编译配置)

sh setup.sh

说明:

1、安装过程中需要指定安装目录(/usr/local/xunsearch)

2、首次安装可能需要几分钟,中间不出问题表示安装成功

5、启动测试

cd /usr/local/xunsearch/bin

./xs-ctl.sh start

说明:也可以将/usr/local/xunsearch/bin 目录添加到系统环境变量中

6、添加开机启动

在 /etc/rc.local 文件最后添加下面一句话

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

在/etc/profile最后一行添加环境变量

:/usr/local/xunsearch/bin

说明:会启动两个服务

1、索引服务(8383):负责索引的添加、删除、修改

2、搜索服务(8384):负责提供搜索服务

二、体验demo项目

1. 查看项目配置文件?

每一个 xunsearch 搜索项目都有一个独立的 INI 配置文件。DEMO 项目的配置文件位于 $prefix/sdk/php/app/demo.ini 使用以下指令便可直接查看配置文件内容。

cat $prefix/sdk/php/app/demo.ini

没错,配置文件很简单、清晰,它默认连接本地的 8383、8384 端口并使用 UTF-8 编码,包含四个字段:pid,subject,message,chrono 。

2. 填充索引数据?

出于测试方便,我们采用 csv 格式来写入索引数据,请先按以下方式操:

cd $prefix/sdk/php/util/Indexer.php --source=csv --clean demo

然后脚本会给出如下提示:

初始化数据源 ... csv WARNING: input file not specified, read data from <STDIN> 开始批量导入数据 ...

然后我们测试输入下面三条数据,最后一条数据打完后必须敲入回车,然后按 Ctrl-D 结束操作。

Note: 在 Windows 的命令行下运行请使用 Ctrl-Z 来表示结束。

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

这里屏幕会提示如下信息,表示完成数据提交:

INFO: reach end of file or error occured, total lines: 3 完成索引导入:成功 3 条,失败 0 条 刷新索引提交 ...

索引数据的提交是异步行为,所以录完数据并不是立刻就能检索到(当然,这个时间差也不会太大)。所以为稳定起见请稍等几秒再进行下一步的搜索测试。

3. 测试搜索?

首先,我们体验一下正常的搜索,分别以关键词 项目、测试、项目测试、俗话说、莫须有 进行检索:

cd $prefix/sdk/php
util/Quest.php demo 项目

util/Quest.php demo 测试
util/Quest.php demo 项目测试
util/Quest.php demo 俗话说
util/Quest.php demo 莫须有

每个搜索后的关键词系统都会记录下来进行分析,并保存在日志中用于统计热门搜索、搜索建议、相关搜索等。默认情况系统会每 2 小时进行一次更新日志,由于我们在进行测试,所以请使用以下指令进行强制刷新。

util/Indexer.php --flush-log demo


接下来我们测试一下稍微复杂一点的字段、布尔搜索功能:

util/Quest.php demo subject:测试
util/Quest.php demo pid:2
util/Quest.php demo "第三篇 OR pid:1"

最后我们再测试一下日志相关的搜索情况,其中 --suggest 是搜索建议,当用户敲入少许汉字或字母时给出相应的关键词建议(常用于搜索输入框下拉自动提示),而 --related 表示相关搜索、--hot 表示热门搜索、 --correct 表示搜索纠错。

util/Quest.php --hot demo
util/Quest.php --related demo 项目
util/Quest.php --correct demo yunsearch
util/Quest.php --correct demo xmcs
util/Quest.php --correct demo xianmu
util/Quest.php --suggest demo x
util/Quest.php --suggest demo xm
util/Quest.php --suggest demo xia
util/Quest.php --suggest demo xiangmuc
util/Quest.php --suggest demo 项

其它:详见手册

三、项目配置文件

基本说明:

1、项目配置是一个项目的核心灵魂,非常重要,通常保存为.ini文件,通常存储在/usr/local/xunsearch/sdk/php/app/

2、以分号开头的行表示注释,空行直接被忽略不起任何作用

3、中括号包围的每个分区均为字段配置,字段个数根据项目的实际需求设定

4、每个项目必须有且只能有一个类型为ID的主键字段,ID字段值的字母不区分大小写

常用配置:

名称:project.name = xxx

字符集:project.default_charset = UTF-8

索引服务端口:server.index = 8383

搜索服务端口:server.search = 8384

项目字段:

字段名: 【字段名】

字段类型:type = xxx

字段类型:

字符型:string,适用多数情况,默认值

数值型:numeric,包含整型和浮点数,仅当字段需用以排序或区间检索时才设为该类型,否则使用string即可

日期型:date,形式为YYYYmmdd 这样固定的8字节

主键型:id,确保每条数据具备唯一值,是索引更新和删除的凭据,每个搜索项目必须有且仅有一个id字段,该字段的值不区分大小写

标题型:title,标题或名称字段,至多有一个该类型的字段

内容型:body,主内容字段,即本搜索项目中内容最长的字段,至多只有一个该类型字段,本字段不支持字段检索

四、PHP代码操作

认识对象:

XS 搜索项目总对象,所有相关操作均基于此对象及子方法

XSDocument 搜索结果或索引文档,包括一组字段及值,相当于SQL表中的一条记录

XSIndex 索引管理,通过XS对象的index属性取得

XSSearch 搜索功能,通过XS对象的search属性取得

XSException 异常类型,必须捕捉此异常以判断操作是否正确

基本使用:

include '/usr/local/xunsearch/sdk/php/lib/XS.php';

try{

//创建XS对象

$xs = new XS('demo');

//获取索引对象

$index = $xs->index;

//获取搜索对象

$search = $xs->search;

$data = [

'pid'=>123,

'subject'=>'测试文档标题',

'message'=>'测试文档内容',

'chrono'=>time()

];

$doc = new XSDocument($data);

//添加索引

$index->add($doc);

//修改

$index->update($doc);

//删除,更快主键,多个传递数组

$index->del('123');

//同步索引

$index->flushIndex();

//清空索引

$index->clean();

$search->search('测试');

$search->search('测试 文档');

$search->search('测试 OR 文档');

}catch (XSException $e){

    echo $e->getTTracsAsString();

}

免责声明:本文来源于,由网友提供或网络搜集,仅供个人研究、交流学习使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。优知网会定期发布程序开发相关趋势文章,包括 PHP、 Linux、 Mysql 等领域,敬请关注!最后大家可以扫描下方的赞赏码支持我,感谢大家!

微信赞赏小.png

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post