今天鼓捣了xunsearch,感觉官方指南写得挺详细,于是按照指南一步一步走,但是感觉越看越凌乱,像看API一样,新手看得特费劲,网上也少有新手教程,于是略过今天的歪路,记录一下我的安装步骤。

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

  PHP5.2.0以上,php已经配置到linux环境变量。

 二,傻瓜式安装

#获取
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
#解压
tar -xjf xunsearch-full-latest.tar.bz2
#安装
cd xunsearch-full-1.4.9/
sh setup.sh

  接下来提示确认安装目录,默认/usr/local/xunsearch,直接回车确认,y,一个泡面的时间安装完成。

  安装完成后,启动/重启xunsearch后台服务,并建议将下面命令添加到 /etc/rc.local 开机脚本中。

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

   搜索系统将所有数据保存在 xunsearch安装目录/data 目录中。 如果您希望数据目录另行安排或转移至其它分区,请将 xunsearch安装目录/data 作为软链接指向真实目录

 安装 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';

 

  

  shell测试xunsearch的php运行环境,运行后会出现配置提示:

#如果php没有配置到linux环境变量
/path-to-php/bin/php /usr/local/xunsearch/sdk/php/util/RequiredCheck.php

#已经配置过php环境变量
/usr/local/xunsearch/sdk/php/util/RequiredCheck.php

 

 

  Δ想在shell下测试体验xunsearh的搜索,可以点击体验demo项目

 三,简单使用xunsearch

  首先理清xunsearch的使用流程:

  1. 配置项目ini(一个sql表对应一个搜索项目ini)
  2. 使用Indexer索引管理(shell方式连接数据库表,建立索引)
  3. 使用XSsearch搜索对象(在项目中搜索已经建立索引的表,取出数据)

  

  为了方便调试,我这里将整个php-sdk目录复制到本地服务器根目录下,我使用的是(nginx 默认html目录)

cp -R /usr/local/xunsearch/sdk/php /path-to-nginx/html/

 

   至此,我使用PHP-SDK作为php-sdk所在的目录。

 

  下面以一个小例子简单讲解。

  项目要求:新闻搜索,可以添加文章,可以根据关键字搜索。

  使用mysql,test_xs数据库,表名news,字段如下:

+---------+------------------+------+-----+---------+----------------+
| Field   | Type             | Null | Key | Default | Extra          |
+---------+------------------+------+-----+---------+----------------+
| id      | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| title   | varchar(20)      | NO   |     |         |                |
| content | varchar(200)     | NO   |     |         |                |
| addtime | int(10) unsigned | YES  |     | 0       |                |
+---------+------------------+------+-----+---------+----------------+

#此处先导入测试数据
mysql> insert into news (title,content,addtime) values('第一个新闻','今天天气非常好,适合搞搜索',unix_timestamp(now())),('第二个新闻','据新华社今天报道,xunsearch搜索引擎很强大非常好',unix_timestamp(now())),('第三个新闻','天文台预测,今天将启动新一轮的降雨',unix_timestamp(now()));

 

  

  1,配置项目ini

    项目配置ini位于 PHP-SDK/sdk/php/app目录下,xunsearch给了一个demo项目的配置:demo.ini,你可以打开参考其写法,具体配置的详细,你可以点此到官网查看,有例子讲解,这里不累叙,官网还提供了ini配置在线编写器,非常方便。

    我这里简单写了一份:news.ini

project.name = news

[id]
type = id
tokenizer = full

[title]
type = title

[content]
type = body

[addtime]
type = numeric
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2021-06-08
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
  • 2021-12-12
  • 2021-06-13
相关资源
相似解决方案