This page should merge with Rebuild Unified Index
Cron Job to Rebuild Search Index
You can rebuild index by visiting example.com/tiki-admin.php?page=search&rebuild=now
Since Tiki9, if you have a large site and do not use MySQL Full Text search, you should set up a Cron job to regularly rebuild the index.
How to do it varies from server to server, but here is an example. For a fuller description of the commands themselves, please see Unified Index - from the command line
0 0 * * * cd /var/www/html/tiki; php console.php index:rebuild >/dev/null 2>&1
0 0 * * * cd /var/www/html/tiki; php -dmemory_limit=4G -dmax_execution_time=300 console.php index:rebuild --force --log >/dev/null 2>&1
- The last part ">/dev/null 2>&1" indicates to discard the output from the command (standard output and any errors messages produced).
- The first 5 characters (separated by spaces) of the command set the time and frequency that the cron job will run. The characters refer to (in order): minute, hour, day, month, and weekday. So the above (0 0 * * * ) will run at midnight (0 minutes and 0 hour) every night.
Works in Shell but not as a Cron Job
The environment for a cron job (e.g., the PATH
variable) may not be the same as in shell (using SSL can cause this). That means that the above scripts may work in shell but not as a cron job. To solve this, set the cron job to run a shell script that sets the PATH
variable before running the rebuild command.
To find out what the PATH
variable should be, use the env
command in shell on the server where the Tiki site is that you're rebuilding the index for.
Let's say the shell script is called cron.sh
. The cron job would be as follows:
0 0 * * * sh cron.sh >/dev/null 2>&1
The shell script cron.sh
would consist of the following:
#!/bin/bash #this is the exact same setting as in the shell environment PATH=/home/useraccount/perl5/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/useraccount/bin #this is the actual command to rebuild the index php -dmemory_limit=4G -dmax_execution_time=300 /home/useraccount/public_html/console.php index:rebuild
Related: