最近要做全文搜索,以前并没有这方面的经验,于是摸索着用了讯搜。
Xunsearch 包含了后端服务、前端开发包(即 SDK)两大部分,在开发过程中几乎不需要关注后端, 所以我们提供的文档大部分都是 SDK 文档,用于二次开发(下载 CHM 格式,WIN 上请先右键解锁)。
为便于新手用户快速接触和了解 xunsearch
我们还制作了一份 PDF 格式的快速参考文档
《XUNSEARCH 10分钟入门》。
开始&安装
最适合第一次接触 xunsearch 的您,以便让您先成功安装一份完整的 xunsearch。
安装
Xunsearch PHP-SDK 是与 xunsearch
后端服务协同工作的,所以后先必须先在您的服务器
上安装服务端,服务器操作系统要求必须是 Linux
、BSD
或其它类 UNIX
系统,同时安装了
gcc
、make
等基础编译环境。1. 安装、升级 Xunsearch
Tip: 即便您之前已经安装过
xunsearch
,您也可以安装放心的使用该教程进行覆盖安装,会自动 完成升级操作,而不用担心会删除任何已存在的数据。我们制作的安装脚本包含了智能检测功能。此外
xunsearch
的安装和运行都不需要root
权限,强烈推荐单独设置一个系统用户用于安装 执行相关指令。
Xunsearch 全部开源,理论上也可以从官方提供的 git 仓库 获取源码自行构建,但是
这要求必须有较多的技术基础,在此不打算赘述,有这方面需求的技术人员可以到论坛去交流。
为方便用户安装,我们提供了一个包含安装所需求的全部组件的完整安装包(含 xapian/libevent/scws
),
您只要下载并安装此完整安装包即可,具体操作步骤如下:
- 运行下面指令下载、解压安装包 wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2
- 执行安装脚本,根据提示进行操作,主要是输入
xunsearch
软件包的安装目录,强烈建议单独 规划一个目录,而不是混到别的软件目录中。 cd xunsearch-full-1.3.0/ sh setup.sh 第一次安装的话,过程可能会稍显漫长,请不必着急,您大可泡杯茶一边喝一边等待即可。 - 待命令运行结束后,如果没有出错中断,则表示顺利安装完成,然后就可以启动/重新启动
xunsearch
的后台服务,下面命令中的$prefix
请务必替换为您的安装目录,而不是照抄。 cd $prefix ; bin/xs-ctl.sh restart 强烈建议您将此命令添加到开机启动脚本中,以便每次服务器重启后能自动启动搜索服务程序, 在Linux
系统中您可以将脚本指令写进/etc/rc.local
即可。 - 有必要指出的是,关于搜索项目的数据目录规划。搜索系统将所有数据保存在
$prefix/data
目录中。 如果您希望数据目录另行安排或转移至其它分区,请将$prefix/data
作为软链接指向真实目录。
Info: 出于性能和多数需求考虑
xunsearch
服务端和 SDK API 通讯时没有加密和验证处理, 并且默认情况xs-ctl.sh
启动的服务程序是绑定并监听在127.0.0.1
上。如果您的 SDK 调用和
xunsearch
服务端不在同一服务器,请使用 -b inet 方式启动脚本, 并注意借助类似iptables
的防火墙来控制xunsearch
的8383/8384
两个端口的访问权限。 启动脚本用法举例如下,以下均为合法使用方式:
PHP-SDK 的代码不需要另行下载,已经包含在 xunsearch
的安装结果中了,在此假设您将 xunsearch
安装在 $prefix
目录,那么 $prefix/sdk/php
即是 PHP-SDK 的代码目录。目录结构及功能逻列如下:
_ |- doc/ 离线 HTML 版相关文档 |- app/ 用于存放搜索项目的 ini 文件 |- lib/XS.php 入口文件,所有搜索功能必须且只需包含此文件 \- util/ 辅助工具程序目录 |- RequireCheck.php 用于检测您的 PHP 环境是否符合运行条件 |- IniWizzaard.php 用于帮助您编写 xunsearch 项目配置文件 |- Quest.php 搜索测试工具 \- Indexer.php 索引管理工具
如果您的搜索应用程序和 xunsearch
在同一台服务器,则无需复制任何代码,在开发的时候直接包含
入口文件 $prefix/sdk/php/lib/XS.php
即可。代码如下:
require_once '$prefix/sdk/php/lib/XS.php';
如果您在其它服务器部署前端搜索代码,请将 SDK 代码整个目录复制到相应的服务器上,但并不要求放到 web 可访问目录,考虑安全性也不推荐这么做。
Note: 对于前端和后端分离的用户来说,当
xunsearch
升级安装后必须重新复制安装后的 SDK 代码 去覆盖,否则可能造成版本不匹配导致错误。
从现在开始的文档及示范代码中我们都假定您将 xunsearch
安装在 $prefix
目录中,而不再另行说明。
基础运行条件要求 PHP 最低版本为 5.2.0,随着功能需求的不同可能还会用到一些其它扩展,具体请在
命令行环境里运行我们提供的检测脚本。如果您的 php
可执行文件不在默认搜索路径中,假设是安装在
/path/to/bin/php
请使用第二种方式运行。运行方式如下:
1. $prefix/sdk/php/util/RequiredCheck.php 2. /path/to/bin/php $prefix/sdk/php/util/RequiredCheck.php 3. $prefix/sdk/php/util/RequiredCheck.php -c gbk
运行结果输出的中文编码默认为 UTF-8
,如果您使用 GBK
环境请在运行命令最后加上 -c GBK
。
运行结果会给出一个可视化的表格说明检测结果,并在最终给出检测结论,告诉您是否符合运行的基础要求。
至此,安装和准备工作已经完成了,您可以开始使用 Xunsearch PHP-SDK 开发自己的搜索应用了。4. 完全删除 Xunsearch
首先欢迎对 xunsearch
提出各种修改、改进建议,我们都会认真对待和处理。如果有一天您真的不再需要
xunsearch
了,那么只要停止运行后端服务,然后完全删除它的安装目录 $prefix
即可,整个软件包
所有涉及的文件均在该目录下。
Note: 如果您的安装目录没有单独设置,而是使用公共目录(如:/usr/local),请勿直接删除整个目录。
$prefix/bin/xs-ctl.sh faststop rm -fr $prefix
Note: 在开始安装前,无论如何请先安装一次最新发布的完整版本,以便将所有的运行依赖库安装到位。
我们的源代码托管在 github 上。您可以直接浏览代码仓库,也可以通过以下方式之一取得源代码:
git clone git://github.com/hightman/xunsearch.git git clone https://github.com/hightman/xunsearch.git
如果要编译安装这份源代码,您还必须在主机环境上安装相关的 autoconf, automake 工具,然后运行 下面指令完成准备工作。
cd xunsearch/ chmod +x acprep ./acprep
在完成上述的准备工作后,接下来编译安装 xunsearch 就和常见的开源软件类似,假设您的安装目录为
$prefix
,然后按以下步骤操作即可:
./configure --prefix=$prefix make make install
体验 DEMO 项目
为了让您对 xunsearch
有一个初步的印象和了解,我们在这个章节,借助辅助工具
带您体验一下搜索和索引的操作。这里可能有很多内容您尚不熟悉,请不必感到惶恐,
只要跟着说明完成操作即可,后面还有大量章节对各项进行深入讲解。
Note: 这些例子中的命令、代码均假定为默认的 UTF-8 环境,如果您使用的是 GBK 编码环境,请在运行所有
php
脚本时加入-c gbk
参数。
每一个 xunsearch
搜索项目都有一个独立的 INI 配置文件。DEMO 项目的配置文件
位于 $prefix/sdk/php/app/demo.ini
使用以下指令便可直接查看配置文件内容。
cat $prefix/sdk/php/app/demo.ini
没错,配置文件很简单、清晰,它默认连接本地的 8383、8384
端口并使用 UTF-8 编码,包含四个字段:pid,subject,message,chrono 。
出于测试方便,我们采用 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 条 刷新索引提交 ...
索引数据的提交是异步行为,所以录完数据并不是立刻就能检索到(当然,这个时间差也不会太大)。 所以为稳定起见请稍等几秒再进行下一步的搜索测试。
首先,我们体验一下正常的搜索,分别以关键词 项目、测试、项目测试、俗话说、莫须有 进行检索:
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 项
现在应该对 xunsearch 所提供的功能有了初步的印象。您可能会发现在这个体验过程中并 没有涉及到一行代码,因为我们目的只是先了解和接触一下 xunsearch
搜索,所以采用 了附加提供的脚本工具来完成所有操作,关于脚本工具的详细使用请阅读官方专题章节。
地址:http://www.xunsearch.com/
成功客户案例
杭州云圣网络科技有限公司是一家致力于互联网软件技术开发、解决方案制定与实施的高新技术企业,拥有众多的全文检索与搜索引擎领域专业人才。早在 2006 年就开发并发布了开源中文分词引擎 scws,于 2011 年正式推出开源的中文检索检索解决方案 xunsearch。
我们以数据应用为导向,以全文检索、搜索引擎、中文语言知识处理三大核心技术,为客户提供品质优良的专业化产品、完善的数据服务和量身定做的数据应用解决方案,特别在对于海量数据检索、数据挖掘,中文数据分析,多源异构数据的整合方面有着丰富的经验,可以为客户完美地解决海量数据应用、数据孤岛与数据挖掘问题。
通过不断的努力,目前我们的客户遍布全国各地,与政府及多家上市公司均有合作,主要客户包括 ELLECHINA 时尚女性门户、小米手机商城、湖南卫视、SegmentFault技术社区、小区生活网、中国报告大厅、宇博智业集团、尚品家居、761旅游网等。并得到了客户的广泛认可,成为客户信赖的数据检索与挖掘解决方案提供商。
我们从以往客户中精选了几个典型案例,介绍我们的实践经验,也希望您能从中受益(排名不分先后)。
- segmentfault 问答搜索:http://segmentfault.com
- ELLECHINA 时尚女性门户:http://www.ellechina.com/se=elle.shtml
- 小米手机在线商城搜索:http://www.xiaomi.com/search
- 爱壁纸手机应用搜索:http://www.lovebizhi.com
- 761 旅游网站搜索:http://www.761.com
- 无忧文档在线搜索:http://www.5ucom.com/so/
- 湖南卫视金鹰网搜索:http://so.hunantv.com
- 中国报告大厅搜索:http://www.chinabgao.com
- 龙蟠虎踞校园BBS搜索:http://bbs.seu.edu.cn/s
- 小区生活网商城搜索:http://shop.xq180.coms
- 舜网门户搜索系统:http://so.e23.cn
- 尚品居家装搜索:http://www.91spj.com
- 歌词千寻搜索:http://so.lrcgc.com
暂无评论内容