|
|
(6 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| = Installation =
| | ''The contents of this page has been moved to the user documentation: [https://docs.moodle.org/31/en/Global_search Global search]'' |
| | |
| 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 [http://pecl.php.net/package/solr](http://pecl.php.net/package/solr)
| |
| | |
| | |
| Basic installation steps (using apache web server):
| |
| | |
| === Linux (Debian/Ubuntu) ===
| |
| | |
| sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
| |
| sudo apt-get install php5-dev
| |
| sudo apt-get install php-pear
| |
| 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'''
| |