Global search: Difference between revisions
(→Linux) |
No edit summary |
||
Line 1: | Line 1: | ||
= Installation = | = Installation = | ||
To use Solr as Moodle's search engine you need the PHP | To use Solr as Moodle's search engine you need the PHP Solr extension and a Solr server. | ||
== PHP | == PHP Solr extension == | ||
You need PHP | You need PHP 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 [http://pecl.php.net/package/solr](http://pecl.php.net/package/solr) | You can download the official latest versions from [http://pecl.php.net/package/solr](http://pecl.php.net/package/solr) | ||
Basic installation steps (using apache web server): | |||
=== Linux === | === Linux === | ||
Line 29: | Line 32: | ||
== Solr server == | == Solr server == | ||
The following snippet (feel free to copy & paste into a .sh script with execution permissions) will download | The following snippet (feel free to copy & paste into a .sh script with execution permissions) will download 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. | ||
Revision as of 08:55, 29 February 2016
Installation
To use Solr as Moodle's search engine you need the PHP Solr extension and a Solr server.
PHP Solr extension
You need PHP 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)
Basic installation steps (using apache web server):
Linux
sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev sudo pecl install solr sudo service apache2 restart sudo sh -c "echo 'extension=solr.so' > /etc/php5/apache2/conf.d/solr.ini" sudo sh -c "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 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