给Drupal安装后台搜索服务xunsearch

大伟哥 提交于 2020-07-04,周六, 11:47 ,最近更新于2020-07-04,周六, 15:59

大伟哥最近准备使用Drupal的facets模块给上网站上的商品列表页面加上筛选选项,实现类似京东和淘宝那样根据产品参数属性来筛选产品的功能,这样可以极大地提高用户体验。而这个功能则需要facets模块、Search API模块结合一个后端的搜索服务来实现。在Drupal群里经过龙马大佬推荐,我最终选择了对中文支持比较好的迅搜(xunsearch)。

在按官方文档安装xunserch服务的过程中碰到了报错:

ERROR: failed to compile libevent, see 'setup.log' for more detail

按这个提示的说法是编译libevent出错,大伟哥切换了不同的用户权限和安装目录都没有解决,最后按照CSDN上的一篇文章解决了问题,成功安装了。解决的关键就是手动下载最新版的libevent(当前版本2.1.11)替换掉xunsearch下载包里面的libevent-2.0.21。

以下是安装记录:

sudo su - www-data -s /bin/bash
cd /var/www

xunsearch的安装和运行不需要特定的用户和权限,安装目录也可以自定义。大伟哥根据自己的习惯把Drupal网站相关的内容都使用www-data用户运行,目录也放在/var/www目录下面。

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

下载最新版的xunsearch并解压。

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
tar -zxvf libevent-2.1.11-stable.tar.gz
tar -cjf libevent-2.1.11-stable.tar.bz2 libevent-2.1.11-stable
cp libevent-2.1.11-stable.tar.bz2 xunsearch-full-1.4.14/packages/
rm xunsearch-full-1.4.14/packages/libevent-2.0.21-stable.tar.bz2

下载最新版的libevent-2.1.11稳定版,解压缩之后再压缩成.tar.bz2格式复制到xunsearch-full-1.4.14/packages/目录里,顺便把目录里旧版本的libevent-2.0.21-stable.tar.bz2删掉。

cd xunsearch-full-1.4.14/packages
tar -jxvf xunsearch-1.4.14.tar.bz2
vim xunsearch-1.4.14/configure

进入xunsearch-full-1.4.14/packages目录,解压缩xunsearch-1.4.14.tar.bz2,并修改configure文件里的第5390行:

#if _EVENT_NUMERIC_VERSION >= 0x02000000

修改为

#if EVENT__NUMERIC_VERSION >= 0x02000000

保存后,把原来的压缩文件删除,把修改后的文件夹重新打包。

rm -rf xunsearch-1.4.14.tar.bz2
tar -cjf xunsearch-1.4.14.tar.bz2 xunsearch-1.4.14

然后再次运行setup脚本,xunsearch就可以正常安装成功了:

~/xunsearch-full-1.4.14$ sh setup.sh 

+==========================================+
| Welcome to setup xunsearch(full)         |
| 欢迎使用 xunsearch (完整版) 安装程序     |
+------------------------------------------+
| Follow the on-screen instructions please |
| 请按照屏幕上的提示操作以完成安装         |
+==========================================+

Please specify the installation directory
请指定安装目录 (默认为中括号内的值)
[/var/www/xunsearch]:setup.sh: 111: read: Illegal option -e
[/var/www/xunsearch]:

Confirm the installation directory
请确认安装目录:/var/www/xunsearch [Y/n]y

Checking scws ... no
Installing scws (1.2.3) ... 
Extracting scws package ...
Configuring scws ...
Compiling & installing scws ...
Checking scws dict ... no
Extracting scws dict file ... 
Checking libuuid ... no, try to install it
Extracting libuuid package ...
Configuring libuuid ...
Compiling & installing libuuid ...
Checking xapian-core-scws ... no
Installing xapian-core-scws (1.4.13) ... 
Extracting xapian-core-scws package ...
Configuring xapian-core-scws ...
Compiling & installing xapian-core-scws ...
Checking libevent ... no
Installing libevent (2.1.11-stable) ... 
Extracting libevent package ...
Configuring libevent ...
Compiling & installing libevent ...
Extracting xunsearch package (1.4.14) ...
Configuring xunsearch ...
Compiling & installing xunsearch ...
Cleaning ... done

+=================================================+
| Installation completed successfully, Thanks you |
| 安装成功,感谢选择和使用 xunsearch              |
+-------------------------------------------------+
| 说明和注意事项:                                |
| 1. 开启/重新开启 xunsearch 服务程序,命令如下: |
|    /var/www/xunsearch/bin/xs-ctl.sh restart
|    强烈建议将此命令写入服务器开机脚本中         |
|                                                 |
| 2. 所有的索引数据将被保存在下面这个目录中:     |
|    /var/www/xunsearch/data
|    如需要转移到其它目录,请使用软链接。         |
|                                                 |
| 3. 您现在就可以在我们提供的开发包(SDK)基础上    |
|    开发您自己的搜索了。                         |
|    目前只支持 PHP 语言,参见下面文档:          |
|    /var/www/xunsearch/sdk/php/README
+=================================================+

参考文章:

文章分类

标签

添加新评论

此字段内容将保密,不会被其他人看见。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
发布评论前,请通过下面的验证,以免被当作垃圾评论机器人屏蔽。
8 + 5 =
计算出这道简单的算术题并键入答案。例如、1+3,就输入 4。