Installing Redisearch To Enable Super Fast E Commerce Search

Experimental >

The E-Commerce module of ERP Enigma optionally uses RediSearch to enable search functionality which is configurable via E Commerce Settings .

Once installed and configured, RediSearch will be used to charge the search functionality of the E-Commerce website. This includes features like fuzzy-word searching, autocomplete, results ranking and customizable field indexing.

Pre-requisites

  • Enigma Framework Framework + ERP Enigma Setup
  • Redis 6+

Installation Instructions

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

Please Note: the latest version of RediSearch requires Redis 7.1+, while the stable redis as on 01-Aug-2023 available in snap repos is 7.0. Therefore, Redis need to be compiled from source for Redissearch to be compatible with Redis. >

Also note ERP Enigma requires Redis 6+, therefore using Redis 7.1+ might break thinks. Use Redis 7.1+ with caution. >

On successful completion of the above instructions, a redisearch.so binary file will be generated in the RediSearch/build directory.

Move this binary to the /etc directory and restart your Enigma Framework Server:

`sudo mv build/redisearch.so /etc/`

Now, open the redis_cache.conf file located in the config directory (inside the bench directory). Add the following line before the save "" line and then restart bench server:

`loadmodule /etc/redisearch.so`

This will load the redisearch module at startup. You can check if the module was loaded successfully by running the following command in the redis-cli -p 13000 (assuming port as 13000 default port for redis in frappe config):

`> MODULE LIST`

and search should be one of the modules.

You can also load the module on a running redis instance by running the following command in the redis-cli :

`> MODULE LOAD /etc/redisearch.so`

We placed the > redisearch.so > module in the > /etc > directory, but it can be placed anywhere in the file system. We have used this directory because in the future the > loadmodule > line will be populated in the config file automatically and it will assume the binary is in the > /etc > directory. >

More detailed instructions can be found > > here > > . >