How-To installare Solr su Ubuntu 14.04

Solr logo

Questo How-To illustra il processo di installazione di Solr su Ubuntu server 14.04 LTS partendo dal pacchetto scaricabile direttamente dal sito del progetto (http://lucene.apache.org/solr), questa metodologia di installazione è più lunga di quella tramite pacchetti ma consente di installare un Solr in versione aggiornata contrariamente a quella resa disponibile per mezzo dei pacchetti.

Installiamo Java

  1. sudo apt-get -y install openjdk-7-jdk
  2. mkdir /usr/java
  3. ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default

Installiamo Solr

Per iniziare preleviamo il paccheto con solr e lo posizioniamo in un posto opportuno (in questo momento Solr è arrivata alle release 4.7.2):

  1. cd /opt
  2. wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz
  3. tar -xvf solr-4.7.2.tgz
  4. cp -R solr-4.7.2/example /opt/solr
  5. cd /opt/solr
  6. java -jar start.jar
  7. /etc/default/jetty


Solr dovrebbe essere ora avviato quindi possiamo fare una verifica accedendo a http://TUOIP:8983/solr , se otteniamo una risposta significa che fin qui tutto ha funzionato e quindi possiamo tranquillamente interrompere l'esecuzione di Jetty con CTRL+C nella nosta console SSH.

Configuriamo Jetty

La nostra configurazione prevede che Solr sia eseguito grazie al web server/Application Container Jetty quindi ci tocca configurarlo!
Per iniziare creiamo la configurazione di Jetty

  1. (nano /etc/default/jetty)

e riempiamo il file con il seguente file di configurazione

  1. NO_START=0 # Start on boot
  2. JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS"
  3. JAVA_HOME=/usr/java/default
  4. JETTY_HOME=/opt/solr
  5. JETTY_USER=solr
  6. JETTY_LOGS=/opt/solr/logs



ora che Jetty è configurato insegnamogli a fare i log:

  1. nano /opt/solr/etc/jetty-logging.xml



e mettiamo nel file di configurazione:

  1. <?xml version="1.0"?>
  2.   <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
  3.   <!-- =========================================== -->
  4.   <!-- Configure stderr and stdout to a Jetty rollover log file -->
  5.   <!-- this configuration file should be used in combination with -->
  6.   <!-- other configuration files.  e.g. -->
  7.   <!--    java -jar start.jar etc/jetty-logging.xml etc/jetty.xml -->
  8.   <!-- =========================================== -->
  9.   <Configure id="Server" class="org.mortbay.jetty.Server">
  10.  
  11.       <New id="ServerLog" class="java.io.PrintStream">
  12.         <Arg>
  13.           <New class="org.mortbay.util.RolloverFileOutputStream">
  14.             <Arg><SystemProperty name="jetty.logs" default="."/>/yyyy_mm_dd.stderrout.log</Arg>
  15.             <Arg type="boolean">false</Arg>
  16.             <Arg type="int">90</Arg>
  17.             <Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
  18.             <Get id="ServerLogName" name="datedFilename"/>
  19.           </New>
  20.         </Arg>
  21.       </New>
  22.  
  23.       <Call class="org.mortbay.log.Log" name="info"><Arg>Redirecting stderr/stdout to <Ref id="ServerLogName"/></Arg></Call>
  24.       <Call class="java.lang.System" name="setErr"><Arg><Ref id="ServerLog"/></Arg></Call>
  25.       <Call class="java.lang.System" name="setOut"><Arg><Ref id="ServerLog"/></Arg></Call>
  26.   </Configure>


Ora che le configurazioni sono ok procuriamoci uno script di avvio per jetty:

  1. sudo wget -O /etc/init.d/jetty http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty.sh
  2. sudo chmod a+x /etc/init.d/jetty
  3. sudo update-rc.d jetty defaults
  4. /etc/init.d/jetty start

Configuriamo il Core di Solr

Solr ha la possibilità di gestire più di indice per le nostre ricerche ed arrivati a questo punto conviene configurare meglio il core di esempio fornitoci nel pacchetto.

Verifichiamo nuovamente che via web l'interfaccia di Solr http://TUOIP:8983/solr risponda altimenti qualcosa è andato storto e conviene verificare di aver seguito tutta la guida fin qui.
Se il server risponde ora ci tocchera risolvere gli imbarazzanti log che ci vengono segnalati dall'interfaccia di amministrazione nella sezione log, fortunamente sono solo problemi del Core di esempio (non si sa come ma l'esempio è sbagliato!)
Per prima cosa rendiamoci disponibili le librerie aggiuntive in una posizione raggiungibile dal nostro Solr quindi:

  1. /etc/init.d/jetty stop
  2. cd /opt/solr
  3. ln -s /opt/solr-4.7.2/dist/  dist
  4. ln -s /opt/solr-4.7.2/contrib/  contrib


Ora che le librerie sono all'interno della nostra installazione andiamo a correggere la configurazione presente in /opt/solr/solr/collection1/solrconfig.xml da cosi:

  1.  
  2. <lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
  3. <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
  4.  
  5. <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
  6. <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
  7.  
  8. <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
  9. <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
  10.  
  11. <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
  12. <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />



a cosi:

  1.  
  2. <lib dir="../../contrib/extraction/lib" regex=".*\.jar" />
  3. <lib dir="../../dist/" regex="solr-cell-\d.*\.jar" />
  4.  
  5. <lib dir="../../contrib/clustering/lib/" regex=".*\.jar" />
  6. <lib dir="../../dist/" regex="solr-clustering-\d.*\.jar" />
  7.  
  8. <lib dir="../../contrib/langid/lib/" regex=".*\.jar" />
  9. <lib dir="../../dist/" regex="solr-langid-\d.*\.jar" />
  10.  
  11. <lib dir="../../contrib/velocity/lib" regex=".*\.jar" />
  12. <lib dir="../../dist/" regex="solr-velocity-\d.*\.jar" />

Ora che la configurazione dovrebbe essere facciamo una piccola verifica quindi:

  1.  /etc/init.d/jetty start



e verifichiamo che sia tutto su senza errori!

Rendiamo il primo Core un Template

A questo punto la configurazione del primo "core modello" è ok ma potrebbe essere per noi meglio
rinominarlo in qualcosa di pi "parlante" e quindi:

  1.  
  2. /etc/init.d/jetty stop
  3. cd /opt/solr/solr
  4. mv collection1  template_base
  5. echo "name=template_base" > template_base/core.properties


Creiamo il primo Core!

Bene ora abbiamo un modello di core che è pronto per essere clonato per creare i core (repository/indici)
da utilizzare veramente quindi, per creare il primo core "da utilizzare" ci basta:

  1. cd /opt/solr/solr
  2. cp  -R template_base paperino
  3. echo "name=paperino" > template_base/core.properties
  4. chown solr:solr paperino/ -R
  5. /etc/init.d/jetty start



Il presente How-To nasce dall'unione di innumerevoli guide ed è stato provato con un Ubuntu 14.04 intonsa, volendo ringraziare l'how-to che di più mi ha aiutato ringrazio questo: https://www.digitalocean.com/community/articles/how-to-install-solr-on-u...

Share this post