Apache Solr Setup for Magento

Written by Peter Davies on .

Initial Configuration

Using a blank Debian 6 with SSH enabled, connect and run:

apt-get install unzip locate

Setup base apps

# get the base
apt-get install tomcat6 tomcat6-admin

# create an admin user
nano /etc/tomcat6/tomcat-users.xml

# Add the following user:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="admin" password="pass123" roles="admin,manager"/>
</tomcat-users>

# restart the service
/etc/init.d/tomcat6 restart

### NOTE ON PORT
# You may need to edit /etc/tomcat6/server.xml [line 71] set to 8181

# view the server
http://192.168.1.35:8080
http://192.168.1.35:8080/manager/

----------------------------

wget http://apache.cict.fr/lucene/solr/3.6.0/apache-solr-3.6.0.zip
unzip apache-solr-3.6.0.zip
cd apache-solr-3.6.0/

# copy the main app to the "webapps" folder
cp dist/apache-solr-3.6.0.war /var/lib/tomcat6/webapps/solr.war

# this also creates a "solr" directory here within 60s:
# /var/lib/tomcat6/webapps/solr
cp -rf example/solr/* /var/lib/tomcat6/webapps/solr/
chown -R tomcat6:tomcat6 /var/lib/tomcat6/webapps/solr

# stop tomcat
/etc/init.d/tomcat6 stop

# create our config file
touch /etc/tomcat6/Catalina/localhost/solr.xml
chown tomcat6:tomcat6 /etc/tomcat6/Catalina/localhost/solr.xml
nano /etc/tomcat6/Catalina/localhost/solr.xml

# and fill it with the following configuration :

<Context docBase="/var/lib/tomcat6/webapps/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/var/lib/tomcat6/solr" override="true" />
</Context>

# edit the data path
mkdir -p /var/lib/solr/data
chown -R tomcat6:tomcat6 /var/lib/solr/data
nano /var/lib/tomcat6/webapps/solr/conf/solrconfig.xml

# edit the path <dataDir>/var/lib/solr/data</dataDir>

# start tomcat
/etc/init.d/tomcat6 start

# this link should now work:
http://192.168.1.35:8080/solr/admin/

----------------------------
# Disable excessive double logging to .out file

----------------------------
# MULTI-core setup
----------------------------
# stop tomcat
/etc/init.d/tomcat6 stop

# edit the config file:
nano /var/lib/tomcat6/webapps/solr/solr.xml

# add the following replacing the existing data

  <cores adminPath="/admin/cores" defaultCoreName="core0">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
  </cores>

# create default directories
mkdir core0 core1

#copy or create the magento conf folder in each
cp -R /root/magesolrtemp/conf /var/lib/tomcat6/webapps/solr/core0/
cp -R /root/magesolrtemp/conf /var/lib/tomcat6/webapps/solr/core1/

# start tomcat
/etc/init.d/tomcat6 start

# this link should now work:
http://192.168.1.35:8080/solr/admin/

----------------------------
# MAGENTO:

cd /home/magentosite/public_html/shell
php ./indexer.php --reindex catalogsearch_fulltext


Primary sites to look at for information:

http://stackoverflow.com/questions/7168249/how-to-configure-magento-enterpise-to-use-solr-as-the-main-search-engine

Other sites to look at for information:


http://lucene.apache.org/solr/
http://wiki.apache.org/solr/SolrTomcat
http://pabloseminario.com/2011/02/22/installing-solr-on-debian-6-0/
http://www.summasolutions.net/blogposts/magento-apache-solr-integration
http://www.summasolutions.net/blogposts/magento-apache-solr-set
http://www.summasolutions.net/blogposts/magento-apache-solr-integration-part-iii-indexing-custom-data
http://www.summasolutions.net/blogposts/magento-apache-solr-integration-part-iv-ajax-search-form