文档说明

安装

Xunsearch PHP-SDK 是与 xunsearch 后端服务协同工作的,所以后先必须先在您的服务器 上安装服务端,服务器操作系统要求必须是 LinuxBSD 或其它类 UNIX 系统,同时安装了 gccmake 等基础编译环境。

1. 安装、升级 Xunsearch

Tip: 即便您之前已经安装过 xunsearch,您也可以安装放心的使用该教程进行覆盖安装,会自动 完成升级操作,而不用担心会删除任何已存在的数据。我们制作的安装脚本包含了智能检测功能。

此外 xunsearch 的安装和运行都不需要 root 权限,强烈推荐单独设置一个系统用户用于安装 执行相关指令。

Xunsearch 全部开源,理论上也可以从官方提供的 git 仓库 获取源码自行构建,但是 这要求必须有较多的技术基础,在此不打算赘述,有这方面需求的技术人员可以到论坛去交流。 为方便用户安装,我们提供了一个包含安装所需求的全部组件的完整安装包(含 xapian/libevent/scws), 您只要下载并安装此完整安装包即可,具体操作步骤如下:

  1. 运行下面指令下载、解压安装包

    wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
    tar -xjf xunsearch-full-latest.tar.bz2
    
  2. 执行安装脚本,根据提示进行操作,主要是输入 xunsearch 软件包的安装目录,强烈建议单独 规划一个目录,而不是混到别的软件目录中。

    cd xunsearch-full-1.3.0/
    sh setup.sh
    

    第一次安装的话,过程可能会稍显漫长,请不必着急,您大可泡杯茶一边喝一边等待即可。

  3. 待命令运行结束后,如果没有出错中断,则表示顺利安装完成,然后就可以启动/重新启动 xunsearch 的后台服务,下面命令中的 $prefix 请务必替换为您的安装目录,而不是照抄。

    cd $prefix ; bin/xs-ctl.sh restart
    

    强烈建议您将此命令添加到开机启动脚本中,以便每次服务器重启后能自动启动搜索服务程序, 在 Linux 系统中您可以将脚本指令写进 /etc/rc.local 即可。

  4. 有必要指出的是,关于搜索项目的数据目录规划。搜索系统将所有数据保存在 $prefix/data 目录中。 如果您希望数据目录另行安排或转移至其它分区,请将 $prefix/data 作为软链接指向真实目录。

Info: 出于性能和多数需求考虑 xunsearch 服务端和 SDK API 通讯时没有加密和验证处理, 并且默认情况 xs-ctl.sh 启动的服务程序是绑定并监听在 127.0.0.1 上。

如果您的 SDK 调用和 xunsearch 服务端不在同一服务器,请使用 -b inet 方式启动脚本, 并注意借助类似 iptables 的防火墙来控制 xunsearch8383/8384 两个端口的访问权限。 启动脚本用法举例如下,以下均为合法使用方式:

bin/xs-ctl.sh -b local start    // 监听在本地回环地址 127.0.0.1 上
bin/xs-ctl.sh -b inet start     // 监听在所有本地 IP 地址上
bin/xs-ctl.sh -b a.b.c.d start  // 监听在指定 IP 上
bin/xs-ctl.sh -b unix start     // 分别监听在 tmp/indexd.sock 和 tmp/searchd.sock
2. 安装 PHP-SDK

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 代码 去覆盖,否则可能造成版本不匹配导致错误。

3. 检测 PHP-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
5. 从 Git 源码仓库安装

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
$Id$

10条评论!

#102 报告
zjairing at 2017-05-05 09:52:01
bin/xs-ctl.sh -b a.b.c.d start // 监听在指定 IP 上

这个指的是服务器的ip 比如讯搜安装在服务器,本地要去链接讯搜,这个指定IP指的是讯搜安装的服务器ip, 不是我们本地的ip

#92 报告
xxx at 2016-10-18 10:24:24
下载完成之后解压直接报错。

[root@localhost ~]# tar -xjf xunsearch-full-latest.tar.bz2 tar (child): bzip2:无法 exec: 没有那个文件或目录 tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now [root@localhost ~]#

#91 报告
mercury at 2016-09-29 17:10:16
安装正常

但是启动不了。 提示:xs-ctl.sh:未找到命令

#90 报告
30225579 at 2016-09-24 13:17:31
非常棒!感谢作者

ubuntu 14.04下面跟着文档一路很顺利

#76 报告
犯困的世界 at 2016-06-19 18:13:19
今天才看到这个,之前都考虑用别家的,但看到这里感觉做得很好,打算先试一下

国内越来越多类拟的开源项目了,感觉真不错,感谢项目的作者、开发人员

#51 报告
passwordlost at 2015-04-21 13:07:52
这个安装 指南 和最新版的有区别 建议写上版本号的指南 一个版本对应一个版本 无法调试demo

服务器操作系统要求必须是 Linux、BSD 或其它类 UNIX 系统,同时安装了 gcc、make 等基础编译环境。 这个 gcc、make 等基础编译环境 是需要自己装还是安装包也带呢?

#44 报告
yangd4 at 2014-11-03 19:38:47
太复杂了,不适合菜鸟

有一键安装包最好!

#19 报告
zenberry at 2012-12-09 14:07:22
【建议】完善对Windows下SDK的设置的说明

在“2. 安装 PHP-SDK” 对windows下SDK的使用说明很少。而且xunsearch.com整个网站上对 windows下demo.ini等配置的说明也不全面(至少我找了也找到显式说明)。

所以这里建议xunsearch团队把win下的配置补充一下(我举一个针对windows的 demo.ini写法):

;demo.ini 文件开始

project.name = demo

project.default_charset = gbk

;说明:windows的配置文件中必须显式指定服务端linux所在IP和端口。否则SDK默认在本机(127.0.0.1)找默认端口。

;说明:(这里IP和端口请替换成linux服务端的实际IP和端口)

server.index = 192.168.1.102:8383

server.search = 192.168.1.102:8384

[aid]

type = id

[title]

type = title

[addtime]

type = date

index = self

[content]

type = body

;demo.ini 文件结束

#11 报告
bevin1984 at 2012-04-27 14:42:05
有人知道吗?

Freebsd9.0 下安装 xunsearch-full-1.3.1 出现以下错误: checking for scws_new in -lscws... no configure: error: scws_new() NOT found in libscws, please check it first.

找到解决方法了 cd $prefix/lib; ln -s libuuid.so.1.0 libuuid.so; ln -s libscws.so.2.0 libscws.so;

#6 报告
askie at 2011-10-04 23:49:17
这个目录不正确,现在加压出来是带版本号的

cd xunsearch-full/ sh setup.sh

请到论坛 登录 后刷新本页面!