登录  /  注册
博主信息
博文 27
粉丝 0
评论 1
访问量 45592
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Xunsearch安装和使用
学习使我快乐
原创
1753人浏览过

一、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

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学