安装RediSearch以启用快速电商搜索

实验性功能

ERPNext 的电子商务模块可选使用 RediSearch 来实现搜索功能,该功能可通过 电子商务设置 进行配置。

一旦安装并配置完成,RediSearch 将用于增强电子商务网站的搜索功能。这包括模糊搜索、自动补全、结果排序以及可自定义的字段索引等功能。

前提条件

  1. Frappe 框架 + ERPNext 环境
  2. Redis 6+

安装说明

$ git clone --recursive https://github.com/RediSearch/RediSearch.git
$ cd RediSearch
$ sudo make setup # Remove `sudo` on macOS
$ make build

请注意:最新版本的 RediSearch 需要 Redis 7.1+,而截至 2023 年 8 月 1 日,snap 仓库中可用的稳定版 Redis 为 7.0。因此,需要从源码编译 Redis 才能使 RediSearch 与 Redis 兼容。

另外请注意,ERPNext 需要 Redis 6+,因此使用 Redis 7.1+ 可能会导致问题。请谨慎使用 Redis 7.1+。

成功完成上述步骤后,将在 redisearch.so 目录中生成一个名为 RediSearch/build 的二进制文件。

将此二进制文件移动到 /etc 目录,然后重启您的 Frappe 服务器:

sudo mv build/redisearch.so /etc/

现在,打开位于 config 目录(在 bench 目录内)中的 redis_cache.conf 文件。在 save "" 行之前添加以下行,然后重启 bench 服务器:

loadmodule /etc/redisearch.so

这将在启动时加载 redisearch 模块。您可以通过在 redis-cli -p 13000 中运行以下命令来检查模块是否成功加载(假设端口为 13000,这是 frappe 配置中 redis 的默认端口):

> MODULE LIST

并且 search 应该是模块之一。

您也可以在正在运行的 redis 实例上加载该模块,方法是在 redis-cli 中运行以下命令:

> MODULE LOAD /etc/redisearch.so

我们将 redisearch.so 模块放置在 /etc 目录中,但它可以放在文件系统的任何位置。我们使用此目录是因为将来 loadmodule 行会自动填充到配置文件中,并且它会假定二进制文件位于 /etc 目录中。

更详细的说明可以在这里找到。