Installazione di Apache Solr 4.6.0 e compatibilità con Drupal7


14

Sto riscontrando difficoltà nell'installazione di Apache Solr. L'ultima versione che ho scaricato era la 4.6.0. Ma tutta la documentazione e i tutorial di Drupal (vedi http://www.youtube.com/watch?v=ori-VvvH1Aw ) parlano di 3.5.0. Sebbene 3.5.0 non si trovi da nessuna parte su Internet, 4.6.0 ha una struttura di directory totalmente diversa e non esiste documentazione su come installare quest'ultima versione su un server o su un WAMP locale. Non si fa menzione di quali versioni di Apache Solr sono più consigliate per lavorare con Drupal? Qualsiasi aiuto?


C'è un eccellente articolo qui: lullabot.com/blog/article/installing-solr-use-drupal che ha funzionato per me su 4.5.1. Se vuoi usare Search API Solr, ho scritto qui un esempio di installazione di Ubuntu 12.04: drupal.org/node/2143715
Dominic Woodman,

Risposte:


21

Non sei solo, ho dovuto perlustrare Internet e leggere diversi articoli prima di capire veramente tutto questo. Ho provato tre metodi diversi fino a quando non ho capito bene!

Se stai usando Debian / Ubuntu (con Tomcat7) è ancora più semplice della maggior parte dei contorni. Ho preferito questo rispetto a Lullabot poiché quando lo installi tramite Ubuntu è in realtà un servizio e meno complicato :)

Installa Java

apt-get install java7-jdk

Installa Tomcat

apt-get install tomcat7 tomcat7-admin

Una volta fatto, puoi arrivare a http://localhost:8080vedere che funziona tutto correttamente.

Nota: si consiglia di spingere la porta su un'altra poiché l'8080 è abbastanza comune. Se vuoi farlo usa questo codice per quello!

sudo sed -i s/8080/8983/g /var/lib/tomcat7/conf/server.xml

Configura Tomcat

  1. Dovrai effettivamente creare un account utente per Tomcat in modo che altre persone debbano accedere all'amministratore (per mantenerlo più sicuro).

    nano /var/lib/tomcat7/conf/tomcat-users.xml

  2. Quindi aggiungi questi argomenti xml tra i <tomcat-users>tag

    <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="!!somename!!" password="!!somepassword!!" roles="manager-gui,admin-gui"/>

  3. Ora puoi riavviare Tomcat e visualizzare la pagina di amministrazione all'indirizzo http://localhost:8983/manager/html

    service tomcat7 restart

Installa Solr

  1. Scarica l'ultimo ApacheSolr qui (quando ho scritto questo l'ho fatto funzionare con 4.7)

  2. Estrarre i file in una directory

Copia i file della libreria Solr

Quindi vogliamo aggiungere i file della libreria alla directory della libreria Tomcat. Nota: puoi anche utilizzare i collegamenti simbolici se preferisci, ma allo scopo di capire dove va tutto, ho scelto di inserirlo direttamente nelle directory

cp ~/solr-4.x.x/example/lib/ext/* /usr/share/tomcat7/lib/

Potrebbe essere una buona idea copiare anche le librerie java da solr / dist / solrrj-lib / *

cp ~/solr-4.x.x/dist/solrj-lib/* /usr/local/tomcat7/lib/

Copia il file dell'app Solr WAR

cp ~/solr-4.x.x/dist/solr-4.x.x.war /var/lib/tomcat7/webapps/solr.war

Setup Drupal ApacheSolr core

  1. Dobbiamo prima copiare i file di configurazione di esempio da ApacheSolr.

    mkdir -p /var/lib/tomcat7/solr cp -r ~/solr-4.x.x/example/solr/collection1/conf /var/lib/tomcat7/solr/

  2. Quindi prendi l'ultima versione del modulo apachesolr https://drupal.org/project/apachesolr e decomprimilo

    tar xvf apachesolr-*.tar.gz

  3. Sincronizza i file di configurazione di apachesolr (per Drupal) con la tua configurazione solr

    rsync -av apachesolr/solr-conf/solr-4.x/ /var/lib/tomcat7/solr/conf/

Nota: ho riscontrato un errore in cui ApacheSolr si è rifiutato di avviarsi a causa di errori duplicati. Ho riferito che qui, quindi potresti voler esaminare la soluzione qui poiché al momento della stesura di questo non potrei farlo funzionare senza quello!

  1. Crea un file di definizione principale per indicare ad Apache Solr quali core sono disponibili.

    nano /var/lib/tomcat7/solr/solr.xml

  2. Incolla il seguente codice all'interno di quel file

    <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="!!yourcorename!!" instanceDir="!!yourcoredir!!" /> </cores> </solr>

Crea la directory principale di Drupal

Questo creerà un nuovo core nel tuo sistema con quel nome. Se desideri aggiungere altro, puoi semplicemente ripetere questo passaggio e quello sopra.

mkdir /var/lib/tomcat7/solr/!!yourcoredir!!
cp -r /var/lib/tomcat7/solr/conf /var/lib/tomcat7/solr/!!yourcoredir!!/

Rendiamolo vivo

  1. Sei all'ultimo tratto !! Mettiamo tomcat7 a dormire

    service tomcat7 stop

  2. Ora modifica le autorizzazioni sulla directory tomcat

    chown -R tomcat7:tomcat7 /var/lib/tomcat7

  3. Avvia il backup

    service tomcat7 start

È in diretta

Dovresti essere in grado di andare a http://localhost:8983/solrvedere una nuova istanza principale disponibile! Ora puoi andare avanti e configurare drupal per puntare a quello.

Nota: il nuovo core si trova in http://localhost:8983/solr/!!yourcorename!!per essere utilizzato nel modulo Drupal ApacheSolr.

Credito e oggetti di scena vanno a Pacoup


1
Ottima guida. In "configura Tomcat" manca il codice XML nel passaggio 2: "Quindi aggiungi questi argomenti xml tra i tag" ... nessun codice XML specificato.
Jordan Magnuson,

Hmm è lì ma non riesci a vederlo forse a causa del tuo browser? Vorrei provare a modificare l'output per risolvere il problema
shaneonabike,

In realtà ho appena controllato e sto usando i tag di codice corretti?
shaneonabike,


L'ho riparato. Il codice XML deve essere inserito tra ``
Jordan Magnuson,


1

Ecco come è descritto nella documentazione della comunità Drupal ( Installazione di Solr su Tomcat ):

CentOS

Questo walk-through presuppone che Tomcat sia già installato. In caso contrario, è probabilmente più semplice utilizzare WHM, installarlo lì e ricostruire apache. Point and click è quello che dico.

Una volta installato Tomcat è possibile verificarne l'installazione andando a:

domain.com:8080 

Dovresti vedere la pagina Tomcat predefinita. In caso contrario, chiedi aiuto a qualcuno. In caso contrario, stai danneggiando la persona successiva che presenta lo stesso problema. Se non volessimo aiutare non saremmo Open Source.

Scarica la tua copia di Solr. Se non sai dove trovarlo, cercalo su Google.

Per rendere le cose più facili ora e in futuro, trova la tua installazione Tomcat

$ locate tomcat

Crea un collegamento soft in questo modo:

ln -s /my/tomcat/location /tomcat

Se hai fatto bene dovresti essere in grado di farlo

$ /tomcat

in sshd e vai alla tua directory.

Userò la /libdirectory per il mio esempio. Se non ne hai uno, crealo con il mkdir /libcomando.

  1. Estrai Solr in una posizione temporanea, per amor mio, ho appena ricevuto il file zip dai mirror Solr.

    $ unzip apache-solr-1.4.1.zip /lib/

    Costruisci il tuo Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Rinomina il tuo file di guerra per facilità d'uso.

    $ cd /lib/apache-solr-1.4.1
    $ cd dist
    $ mv apache-solr-1.4.1.war solr.war  (this just renames it without asking you)
    $ dir  (check to make sure it worked. you should see solr.war)
  3. Copia solr.warin/lib/solr/example

    $ cp solr.war /lib/solr/example
    $ cd /lib/solr/example
    $ dir  (verify that the solr.war is in the directory, you should also see the familiar start.jar file there)
  4. Copia i file xml dalla posizione di apachesolr. Di solito sarà:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Crea un file XML in Tomcat per dirgli di eseguire Solr all'avvio di Tomcat

    $ cd /tomcat
    $ cd /conf/Catalina/localhost
    $ vi solr.xml

    Incollalo nel tuo nuovo file:

    <code>
    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="/solr/example/solr.war" debug="0" crossContext="true" >
       <Environment name="solr/home" type="java.lang.String" value="/solr/example/solr" override="true" /> 
    </Context>
    </code>

    I due valori che dovresti personalizzare sono Context :: docBase (per puntare al tuo file .war) e Environment :: value (per puntare alla tua directory solr). Si noti che in questo esempio il file .war si trova nella directory solr, che è un ottimo modello da seguire.

    {Premere Escapee quindi :w} e quindi {Premere il tasto Esc e quindi :q}

  6. Riavvia Tomcat usando WHM per facilità. È in Riavvia servizi. Quindi vai qui:

    yourdomainname.com:8080/solr/admin

    È possibile che venga visualizzato questo errore:

    false in null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: Impossibile creare la directory: / usr / share / solr / data / index su org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) su org.apache.solr.core.SolrCore. (SolrCore.java:546) su ...

    Non fatevi prendere dal panico. Gatcha!

    Vai di solrconfig.xmlnuovo

    $ cd /solr/example/solr/conf
    $ vi solrconfig.xml

    e modifica questa riga:

    <!--<dataDir>${solr.data.dir:./solr/data}</dataDir>-->

    per

    <dataDir>${solr.data.dir:./solr/data}</dataDir>

    Riavvia Tomcat e vai qui:

    yourdomainname.com:8080/solr/admin

    FARE SE SE NON SEI GIÀ:

    Vai al tuo file schema.xml in /lib/solr/example/solr/conf:

    $ vi schema.xml

    Aggiungi questo nella sezione subito dopo <field>:

      <field dest="host" source="host"/>
      <field dest="segment" source="segment"/>
      <field dest="boost" source="boost"/>
      <field dest="digest" source="digest"/>
      <field dest="tstamp" source="tstamp"/>

    Salvarlo ed uscire da {Premere il Escapepulsante) :w(premere Enter) quindi (premere il Escapepulsante) :q(premere Enter )

    Se stai usando Nutch, vai qui e installa / configura nutch .

Per Apachesolr in Drupal 6.x, consultare: Installazione di Drupal 6.x con Apache Solr su Tomcat6 e Ubuntu .


1

Tutte le versioni di solr dovrebbero funzionare con Drupal fintanto che hai un modulo che lo supporta.

Ad esempio il modulo Apachesolr , ha file di configurazione per: Solr: 3.xe 4.x.

Per il modulo Search Search Solr API , è possibile trovare i file di configurazione per Solr: 3.x, 4.xe 5.x, quindi non dovrebbe essere un problema.

Come installare Solr, è un'altra cosa. Ci sono molti modi per farlo. Di seguito alcuni esempi.

Installazione

OS X

Il modo più semplice è installare l'ultimo Apache Solr usando Homebrew, ad esempio:

brew install solr
ln -sfv /usr/local/opt/solr/*.plist ~/Library/LaunchAgents
brew services start solr # Or just: solr start

L'istanza Solr ora installata è accessibile all'indirizzo: http: // localhost: 8983 /

Debian / Ubuntu

Il modo più semplice è installare Solr tramite apt:

sudo apt-get install solr-tomcat

via marionetta

Utilizzare Puppet manifest per installare Solr. Ecco un esempio di solr4-tomcat.pp .

Manualmente (4.xo 5.x)

$ VER=4.10.4 # Solr version.
$ TOMCAT_BASE=/var/lib/tomcat7
$ sudo apt-get install tomcat7 tomcat7-admin
$ sudo sed -i.org 's|port=\"8080\"|port=\"8983\"|g' /etc/tomcat?/server.xml
$ sudo mkdir -p /opt/solr/home/collection1/conf /opt/solr/data
$ cd /opt/solr
$ curl -s http://archive.apache.org/dist/lucene/solr/$VER/solr-$VER.tgz | sudo tar zxvf -
$ sudo cp -v /opt/solr/solr-$VER/dist/solr-$VER.war $TOMCAT_BASE/webapps/solr.war
$ sudo cp -v /opt/solr/solr-$VER/example/lib/ext/*.jar /opt/solr/solr-$VER/dist/solrj-lib/*.jar /opt/solr/solr-$VER/example/resources/log4j.properties $TOMCAT_BASE/webapps/solr/WEB-INF/lib
$ curl -s http://ftp.drupal.org/files/projects/search_api_solr-7.x-1.x-dev.tar.gz | sudo tar zxvf -
$ sudo cp -v search_api_solr/solr-conf/4.x/* home/collection1/conf/
$ sudo /etc/init.d/tomcat7 restart

Controlla se funziona su: http: // localhost: 8983


Guarda anche:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.