Disclaimer: I have much more experience USING Solr with Drupal than setting up a Solr service so please use the comments to correct me.
Having Solr index your content has loads of benefits, but best of all in my humble opinion is the beauty of have facetted filtered search. Of course you could do it with database indexes, but the performance win of using Solr is very noticeable.
- A working LAMP stack.
- I am using Ubuntu 12.04.
- Java version 1.6 or higher.
- Use 'java -version' to check.
Download a copy of the Solr tarball to your computer and extract it to a directory of your choice. Make sure you have root privileges, otherwise you will need to prepend 'sudo' to the following:
cd /usr/share wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org/lucene/solr/4.5.1/solr-4.5.1.tgz tar zxvf solr-4.5.1.tgz rm solr-4.5.1.tgz mv solr-4.5.1 solr
And now you have Solr downloaded. You can test it by going to the example directory and executing the start.jar
cd /usr/share/solr/example sudo java -jar start.jar
Now if you navigate to the example.com:8983/solr you should get this lovely screen:
Now it is a bit of hassle always having to run a command from terminal when you want to start solr so here is a little trick to automate it.
cd /etc/init vim start-solr.conf
Enter the following into the file and save it.
# start-solr start on startup script cd /usr/share/solr/example java -jar start.jar end script
Now solr will start whenever the machine you are running starts up.
Configure Solr for Drupal
Most of what you need to know for this can be found on d.o here but I will take you through it anyway.
Download the newest release of the Drupal search_api_solr module. There are some files that we need to to our solr settings.
cd /path/to/search_api_solr/solr-conf cp 4.x/* /usr/share/solr/example/solr/collection1/conf/
And that is pretty much it. Simples!
Configure Drupal for Solr
Now install Drupal and Search API Solr (including dependencies) as you would normally. Go to the Search API configuration page (example.com/admin/config/search/search_api) add a new server (choosing Solr as the service class) and if you get this wonderful message:
you are done!
You can now index Drupal to your heart's delight.