Multiple Solr Instances: The Clean (Ubuntu) Way

If you need to run multiple instances (multiCore) of Solr in an Ubuntu Lucid Lynx, and you don’t want to mess your system (you want to do it the aptitude way), follow this recipe:

  • Install Solr
# aptitude install solr-jetty openjdk-6-jdk
  • Edit /etc/default/jetty and enable autostart
NO_START=0
  • Create /usr/share/solr/solr.xml and specify your instances
<solr persistent="true" sharedLib="lib">
  <cores adminPath="/admin/cores">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
  </cores>
</solr>
  • Create configuration directories for both instances
# cp -Rp /etc/solr/conf /etc/solr/conf-core0
# cp -Rp /etc/solr/conf /etc/solr/conf-core1
# mkdir /usr/share/solr/core0
# mkdir /usr/share/solr/core1
# ln -s /etc/solr/conf-core0 /usr/share/solr/core0/conf
# ln -s /etc/solr/conf-core1 /usr/share/solr/core1/conf
  • Get rid of old stuff
# rm -rf /etc/solr/conf
# rm /usr/share/solr/conf
# rm -rf /var/lib/solr/data
  • Change path of dataDir in /etc/solr/conf-core{0,1}/solrconfig.xml for each instance
<dataDir>/var/lib/solr/core0/data</dataDir>
  • Configure each instance by editing /etc/solr/conf-core{0,1}/solrconfig.xml
  • Start Solr
# /etc/init.d/jetty start
  • Have fun in http://localhost:8080/solr/core0/admin/ and http://localhost:8080/solr/core1/admin/.