Global search: Difference between revisions
No edit summary |
No edit summary |
||
Line 37: | Line 37: | ||
SOLRNAME=solr-$SOLRVERSION | SOLRNAME=solr-$SOLRVERSION | ||
SOLRTAR=$SOLRNAME'.tgz' | SOLRTAR=$SOLRNAME'.tgz' | ||
INDEXNAME=moodle | |||
if [ -d $SOLRNAME ]; then | if [ -d $SOLRNAME ]; then | ||
echo "Error: Directory $SOLRNAME already exists, remove it before starting the setup again." | echo "Error: Directory $SOLRNAME already exists, remove it before starting the setup again." | ||
Line 48: | Line 48: | ||
cd $SOLRNAME | cd $SOLRNAME | ||
bin/solr start | bin/solr start | ||
bin/solr create -c $ | bin/solr create -c $INDEXNAME | ||
# After setting it up and creating the index use: | # After setting it up and creating the index use: | ||
# - "/yourdirectory/solrdir/bin/solr start" from CLI to start the server | # - "/yourdirectory/solrdir/bin/solr start" from CLI to start the server |
Revision as of 08:48, 18 February 2016
Installation
To use Solr as Moodle's search engine you need the PHP Apache Solr extension and a Solr server.
PHP Apache Solr extension
You need PHP Apache Solr extension installed. Use PECL Solr Extension 1.x for Solr Server 3.x, or use PECL Solr 2.x for Solr Server 4.0+.
You can download the official latest versions from [1](http://pecl.php.net/package/solr)
Linux
sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev sudo pecl install solr sudo service apache2 restart sudo echo `"extension=solr.so" > /etc/php5/apache2/conf.d/solr.ini` sudo echo `"extension=solr.so" > /etc/php5/cli/conf.d/solr.ini`
OSX using macports
sudo port install apache-solr4 sudo port install php54-solr
Windows
Install the pecl package as usual. Sorry it has not been tested yet.
Solr server
The following snippet (feel free to copy & paste into a .sh script with execution permissions) will download Apache Solr 5.4.1 in the current directory, start the solr server and create an index in it named moodle to add moodle data to it.
#!/bin/bash set -e SOLRVERSION=5.4.1 SOLRNAME=solr-$SOLRVERSION SOLRTAR=$SOLRNAME'.tgz' INDEXNAME=moodle if [ -d $SOLRNAME ]; then echo "Error: Directory $SOLRNAME already exists, remove it before starting the setup again." exit 1 fi if [ ! -f $SOLRTAR ]; then wget http://apache.mirror.digitalpacific.com.au/lucene/solr/$SOLRVERSION/$SOLRTAR fi tar -xvzf $SOLRTAR cd $SOLRNAME bin/solr start bin/solr create -c $INDEXNAME # After setting it up and creating the index use: # - "/yourdirectory/solrdir/bin/solr start" from CLI to start the server # - "/yourdirectory/solrdir/bin/solr stop" from CLI to stop the server.
Setup
- Go to Site administration -> Plugins -> Search -> Manage global search
- Follow Search setup steps to complete the setup process. Basically you have to:
- Enable global search
- Set Solr as search engine and tick all search areas checkboxes
- Go to Site administration -> Plugins -> Search -> Solr and set Host name to localhost, Port to 8983 and Index name to 'moodle' (the name of the index in Solr)
Indexing
Once global search is enabled a new task will be running through cron, although you can force documents indexing by:
- Going to Reports -> Global search info
- Tick Index all site contents and press Execute
or
- Executing the following task from CLI
php admin/tool/task/cli/schedule_task.php --execute="\\core\\task\\search_task"
Querying
- Hover the search icon in the navigation bar, type your query and press Enter
or
- Add Global search block somewhere
- Type your query and press Search