Instalación de Apache Solr 4.6.0 y compatibilidad con Drupal7


14

Tengo dificultades para instalar Apache Solr. La última versión que descargué fue 4.6.0. Pero toda la documentación y tutoriales de Drupal (consulte http://www.youtube.com/watch?v=ori-VvvH1Aw ) están hablando de 3.5.0. Mientras que 3.5.0 no se encuentra en Internet, 4.6.0 tiene una estructura de directorio totalmente diferente, y no hay documentación sobre cómo instalar esta última versión en un servidor o en un WAMP local. ¿No se menciona qué versiones de Apache Solr son las más recomendadas para trabajar con Drupal? ¿Alguna ayuda?


Aquí hay un excelente artículo: lullabot.com/blog/article/installing-solr-use-drupal que funcionó para mí en 4.5.1. Si desea utilizar Search API Solr, escribí un ejemplo de instalación para Ubuntu 12.04 aquí: drupal.org/node/2143715
Dominic Woodman

Respuestas:


21

No estás solo. Tuve que buscar en Internet y leer varios artículos antes de comprender realmente todo esto. ¡Probé con tres métodos diferentes hasta que finalmente lo hice bien!

Si está utilizando Debian / Ubuntu (con Tomcat7) es aún más fácil que la mayoría de los esquemas. Preferí esto sobre Lullabot ya que cuando lo instalas a través de Ubuntu, en realidad es un servicio y menos complicado :)

Instalar Java

apt-get install java7-jdk

Instalar Tomcat

apt-get install tomcat7 tomcat7-admin

Una vez hecho esto, puede acceder http://localhost:8080y ver que todo funciona correctamente.

Nota: Se recomienda empujar el puerto a otro ya que 8080 es bastante común. Si quieres hacer eso, usa este código para eso.

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

Configurar Tomcat

  1. Deberá crear una cuenta de usuario para Tomcat para que otras personas tengan que iniciar sesión en el administrador (lo mantiene más seguro).

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

  2. Luego agregue estos argumentos xml entre las <tomcat-users>etiquetas

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

  3. Ahora puede reiniciar Tomcat nuevamente y ver la página de administración en http://localhost:8983/manager/html

    service tomcat7 restart

Instalar Solr

  1. Descargue el último ApacheSolr aquí (cuando escribí esto lo hice funcionar con 4.7)

  2. Extrae los archivos en un directorio

Copiar archivos de la biblioteca Solr

A continuación, queremos agregar los archivos de la biblioteca al directorio de la biblioteca Tomcat. Nota: También puede usar enlaces simbólicos si lo prefiere, pero con el fin de comprender a dónde va todo, elegí colocarlo directamente en los directorios

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

Puede ser una buena idea copiar también las bibliotecas java de solr / dist / solrrj-lib / *

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

Copie el archivo de la aplicación Solr WAR

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

Configurar el núcleo Drupal ApacheSolr

  1. Primero tenemos que copiar los archivos de configuración de muestra de ApacheSolr.

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

  2. Luego, tome la última versión del módulo apachesolr https://drupal.org/project/apachesolr y descomprímalo

    tar xvf apachesolr-*.tar.gz

  3. Sincronice los archivos de configuración de apachesolr (para Drupal) con su configuración de solr

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

Nota: Encontré un error en el que ApacheSolr se negó a iniciar debido a errores duplicados. Informé que aquí, así que es posible que desee ver la solución aquí, ya que al momento de escribir esto no podría hacerlo funcionar sin eso.

  1. Cree un archivo de definición de núcleo para indicarle a Apache Solr qué núcleos están disponibles.

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

  2. Pegue el siguiente código dentro de ese archivo

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

Crear directorio principal de Drupal

Esto creará un nuevo núcleo en su sistema con ese nombre. Si desea agregar más, simplemente puede repetir este paso, así como el anterior.

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

Hagámoslo vivir

  1. ¡Estás en el último tramo! Pongamos a tomcat7 a dormir

    service tomcat7 stop

  2. Ahora cambie los permisos en el directorio tomcat

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

  3. Comience de nuevo

    service tomcat7 start

Que es en directo

¡Debería poder ir http://localhost:8983/solry ver una nueva instancia central disponible! Ahora puede seguir adelante y configurar drupal para que apunte a eso.

Nota: Su nuevo núcleo está ubicado http://localhost:8983/solr/!!yourcorename!!para ser utilizado en el módulo Drupal ApacheSolr.

El crédito y los accesorios van a Pacoup


1
Gran guía En "configurar Tomcat" le falta el xml en el paso 2: "Luego agregue estos argumentos xml entre las etiquetas" ... no se da xml.
Jordan Magnuson el

Hmm, está ahí, pero ¿no puedes verlo tal vez por tu navegador? Permítanme intentar cambiar la salida para arreglar eso
shaneonabike

En realidad, ¿acabo de comprobar y estoy usando las etiquetas de código adecuadas?
shaneonabike

Ver captura de pantalla: i.imgur.com/s1jlunf.png
Jordan Magnuson

Lo arreglé. el código xml debe colocarse entre ``
Jordan Magnuson


1

Así es como se describe en la documentación de la comunidad de Drupal ( Instalación de Solr en Tomcat ):

CentOS

Este recorrido supone que ya tiene instalado Tomcat. Si no lo hace, probablemente sea más fácil usar WHM e instalarlo allí y reconstruir Apache. Apuntar y hacer clic es lo que digo.

Una vez que haya instalado Tomcat, puede verificar su instalación yendo a:

domain.com:8080 

Debería ver la página predeterminada de Tomcat. Si no, pídale ayuda a alguien. Si no lo haces, estás lastimando a la siguiente persona que viene con el mismo problema. Si no quisiéramos ayudar, no seríamos de código abierto.

Descargue su copia de Solr. Si no sabe dónde obtenerlo, búsquelo en Google.

Para facilitar las cosas ahora y en el futuro, encuentre su instalación de Tomcat

$ locate tomcat

Cree un enlace suave como este:

ln -s /my/tomcat/location /tomcat

Si lo hiciste bien, deberías poder simplemente

$ /tomcat

en sshd y ve a tu directorio.

Usaré el /libdirectorio para mi ejemplo. Si no tiene uno, créelo con el mkdir /libcomando.

  1. Extraiga Solr en una ubicación temporal, por mi bien, acabo de obtener el archivo zip de los espejos Solr.

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

    Construye tu Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Cambie el nombre de su archivo de guerra para facilitar su 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. Copiar solr.wara/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. Copie los archivos xml de su ubicación apachesolr. Por lo general será:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Cree un archivo xml en Tomcat para indicarle que ejecute Solr al inicio de Tomcat

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

    Pegue esto en su nuevo archivo:

    <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>

    Los dos valores que debe personalizar son Context :: docBase (para apuntar a su archivo .war) y Environment :: value (para apuntar a su directorio solr). Tenga en cuenta que en este ejemplo, el archivo .war está en el directorio solr, que es un buen patrón a seguir.

    {Presione Escapey luego :w} y luego {Presione la tecla Escape y luego :q}

  6. Reinicie Tomcat con WHM para mayor facilidad. Está bajo Reiniciar servicios. Entonces ve aquí:

    yourdomainname.com:8080/solr/admin

    Puede obtener este error:

    falso en nulo ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: No se puede crear el directorio: / usr / share / solr / data / index en org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) en org.apache.solr.core.SolrCore. (SolrCore.java:546) en ...

    No entres en pánico. Yo gatcha!

    Ir a solrconfig.xmlotra vez

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

    y modifique esta línea:

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

    a

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

    Reinicie Tomcat nuevamente y vaya aquí:

    yourdomainname.com:8080/solr/admin

    HAGA ESTO SI YA NO HA SIDO:

    Vaya a su archivo schema.xml en /lib/solr/example/solr/conf:

    $ vi schema.xml

    Agregue esto en la sección justo después <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"/>

    Guárdelo y salga de {Presione el Escapebotón) :w(Presione Enter) y luego (Presione el Escapebotón) :q(Presione Enter)

    Si está utilizando Nutch, vaya aquí e instale / configure Nutch .

Para Apachesolr en Drupal 6.x, consulte: Configuración de Drupal 6.x con Apache Solr en Tomcat6 y Ubuntu .


1

Todas las versiones solr deberían funcionar con Drupal siempre que tenga un módulo que lo admita.

Por ejemplo , el módulo Apachesolr , tiene archivos de configuración para: Solr: 3.xy 4.x.

Para el módulo Search API Solr Search , puede encontrar los archivos de configuración para Solr: 3.x, 4.xy 5.x, por lo que no debería ser un problema.

Cómo instalar Solr, es otra cosa. Hay muchas formas de hacerlo. Pocos ejemplos a continuación.

Instalación

OS X

La manera más simple es instalar el último Apache Solr usando Homebrew, por ejemplo:

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

Ahora se puede acceder a la instancia de Solr instalada en: http: // localhost: 8983 /

Debian / Ubuntu

La forma más sencilla es instalar Solr a través de apt:

sudo apt-get install solr-tomcat

vía marioneta

Utilice el manifiesto de Puppet para instalar Solr. Aquí hay un ejemplo de 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

Compruebe si funciona en: http: // localhost: 8983


Ver también:

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.