Instalação do Apache Solr 4.6.0 e compatibilidade com o Drupal7

14

Estou tendo dificuldades para instalar o Apache Solr. A versão mais recente que baixei foi a 4.6.0. Mas toda a documentação e os tutoriais do Drupal (consulte http://www.youtube.com/watch?v=ori-VvvH1Aw ) estão falando sobre o 3.5.0. Embora o 3.5.0 não seja encontrado em nenhum lugar da Internet, o 4.6.0 possui uma estrutura de diretórios totalmente diferente e não há documentação sobre como instalar esta versão mais recente em um servidor ou em um WAMP local. Não há menção de quais versões do Apache Solr são mais recomendadas para trabalhar com o Drupal? Qualquer ajuda?

drupalina
fonte
Há um excelente artigo aqui: lullabot.com/blog/article/installing-solr-use-drupal Que funcionou para mim na 4.5.1. Se você quiser usar Search API Solr então eu escrevi um exemplo de instalação para o Ubuntu 12.04 aqui: drupal.org/node/2143715
Dominic Woodman

Respostas:

21

Você não está sozinho. Eu tive que vasculhar a internet e ler vários artigos antes de realmente entender tudo isso. Eu tentei três métodos diferentes até finalmente acertar!

Se você estiver usando o Debian / Ubuntu (com Tomcat7), é ainda mais fácil que a maioria dos tópicos. Eu preferi isso ao Lullabot, já que quando você o instala através do Ubuntu, na verdade, é um serviço e é menos complicado :)

Instale Java

apt-get install java7-jdk

Instale o Tomcat

apt-get install tomcat7 tomcat7-admin

Feito isso, você pode http://localhost:8080ver e ver se está tudo funcionando corretamente.

Nota: É recomendável enviar a porta para outra, já que o 8080 é bastante comum. Se você quiser fazer isso, use este código para isso!

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

Configurar o Tomcat

  1. Você realmente deseja criar uma conta de usuário para o Tomcat, para que outras pessoas tenham que fazer login no administrador (o mantém mais seguro).

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

  2. Em seguida, adicione esses argumentos xml entre as <tomcat-users>tags

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

  3. Agora você pode reiniciar o tomcat novamente e visualizar a página de administração em http://localhost:8983/manager/html

    service tomcat7 restart

Instale o Solr

  1. Faça o download do ApacheSolr mais recente aqui (quando escrevi isso, trabalhei com o 4.7)

  2. Extraia os arquivos em um diretório

Copiar arquivos da biblioteca Solr

Em seguida, queremos adicionar os arquivos da biblioteca ao diretório de bibliotecas do Tomcat. Nota: Você também pode usar links simbólicos, se preferir, mas com o objetivo de entender onde tudo vai, eu escolhi colocá-lo diretamente nos diretórios

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

Pode ser uma boa idéia copiar também as bibliotecas java de solr / dist / solrrj-lib / *

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

Copiar arquivo de aplicativo Solr WAR

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

Configuração do Drupal ApacheSolr core

  1. Primeiro, precisamos copiar os arquivos de configuração de amostra do ApacheSolr.

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

  2. Em seguida, pegue a versão mais recente do módulo apachesolr https://drupal.org/project/apachesolr e descompacte-o

    tar xvf apachesolr-*.tar.gz

  3. Sincronize os arquivos de configuração do apachesolr (para Drupal) com sua configuração do solr

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

Nota: Encontrei um erro no qual o ApacheSolr se recusou a iniciar devido a erros duplicados. Eu relatei que aqui, então você pode querer olhar para a solução aqui, pois, no momento em que escrevi isso, eu não poderia fazê-la funcionar sem isso!

  1. Crie um arquivo de definição de núcleo para informar ao Apache Solr quais núcleos estão disponíveis.

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

  2. Cole o seguinte código dentro desse arquivo

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

Criar diretório principal do Drupal

Isso criará um novo núcleo em seu sistema com esse nome. Se você deseja adicionar mais, basta repetir esta etapa, bem como a acima.

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

Vamos fazê-lo viver

  1. Você está no último trecho !! Vamos colocar o tomcat7 para dormir

    service tomcat7 stop

  2. Agora altere as permissões no diretório tomcat

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

  3. Inicie novamente

    service tomcat7 start

É ao vivo

Você deve poder acessar http://localhost:8983/solre ver uma nova instância principal disponível! Agora você pode ir em frente e configurar o drupal para apontar para isso.

Nota: Seu novo núcleo está localizado em http://localhost:8983/solr/!!yourcorename!!para ser usado no módulo Drupal ApacheSolr.

Crédito e acessórios vão para Pacoup

shaneonabike
fonte
1
Ótimo guia. Em "configure Tomcat", está faltando o xml na etapa 2: "Em seguida, adicione esses argumentos xml entre as tags" ... nenhum xml fornecido.
Jordan Magnuson
Hmm, está lá, mas você não pode vê-lo, talvez por causa do seu navegador? Deixe-me tentar e mudar a saída para correção
shaneonabike
Na verdade, acabei de verificar e estou usando as tags de código adequadas?
shaneonabike
Veja a captura de tela: i.imgur.com/s1jlunf.png
Jordan Magnuson
Eu consertei isso. O código xml precisa ser colocado entre ``
Jordan Magnuson
1

Alterações no Solr 4 foram discutidas na fila de problemas: https://drupal.org/node/1676224

O problema contém vários links para sites e tutoriais de sandbox.

Ursula
fonte
1

Aqui está como é descrito na documentação da comunidade Drupal ( instalação do Solr no Tomcat ):

CentOS

Esta explicação pressupõe que você já possui o Tomcat instalado. Caso contrário, provavelmente é mais fácil usar o WHM, instalá-lo e reconstruir o apache. Apontar e clicar é o que eu digo.

Depois de instalar o Tomcat, você pode verificar sua instalação acessando:

domain.com:8080 

Você deve ver a página padrão do Tomcat. Caso contrário, peça ajuda a alguém. Caso contrário, você está prejudicando a próxima pessoa que vem com o mesmo problema. Se não quiséssemos ajudar, não seríamos Open Source.

Faça o download da sua cópia do Solr. Se você não sabe onde obtê-lo, pesquise no Google.

Para facilitar as coisas agora e no futuro, encontre a instalação do Tomcat

$ locate tomcat

Crie um link virtual como este:

ln -s /my/tomcat/location /tomcat

Se você fez certo, deve ser capaz de apenas

$ /tomcat

no sshd e acesse seu diretório.

Eu vou usar o /libdiretório para o meu exemplo. Se você não tiver um, crie-o com o mkdir /libcomando

  1. Extraia o Solr para um local temporário; por minha causa, acabei de obter o arquivo zip dos espelhos do Solr.

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

    Crie seu Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Renomeie seu arquivo de guerra para facilitar o 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.warpara/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 os arquivos xml do seu local apachesolr. Geralmente será:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Crie um arquivo xml no Tomcat para instruí-lo a executar o Solr na inicialização do Tomcat

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

    Cole isso no seu novo arquivo:

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

    Os dois valores que você deve personalizar são Context :: docBase (para apontar para o arquivo .war) e Environment :: value (para apontar para o diretório solr). Observe que neste exemplo o arquivo .war está no diretório solr, que é um bom padrão a seguir.

    {Pressione Escapee, em seguida :w} e, em seguida, {Pressione a tecla Escape e, em seguida, :q}

  6. Reinicie o Tomcat usando o WHM para facilitar. Está em Reiniciar Serviços. Então vá aqui:

    yourdomainname.com:8080/solr/admin

    Você pode receber este erro:

    false em null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: Não é possível criar o diretório: / usr / share / solr / data / index em org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) em org.apache.solr.core.SolrCore. (SolrCore.java:546) em ...

    Não entre em pânico. Eu gatcha!

    Ir para solrconfig.xmlnovamente

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

    e modifique esta linha:

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

    para

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

    Reinicie o Tomcat novamente e acesse aqui:

    yourdomainname.com:8080/solr/admin

    FAÇA ISTO SE NÃO JÁ:

    Vá para o seu arquivo schema.xml em /lib/solr/example/solr/conf:

    $ vi schema.xml

    Adicione isso na seção logo apó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"/>

    Salve-o e saia {Pressione o Escapebotão) :w(Pressione Enter) e depois (Pressione o Escapebotão) :q(Pressione Enter)

    Se você estiver usando o Nutch, acesse aqui e instale / configure o nutch .

Para o Apachesolr no Drupal 6.x, consulte: Configuração do Drupal 6.x com Apache Solr no Tomcat6 e Ubuntu .

kenorb
fonte
1

Toda a versão do solr deve funcionar com o Drupal, desde que você possua um módulo que o suporte.

Por exemplo , o módulo Apachesolr , possui arquivos de configuração para: Solr: 3.xe 4.x.

Para o módulo Search API Solr Search , você pode encontrar os arquivos de configuração do Solr: 3.x, 4.xe 5.x, portanto, isso não deve ser um problema.

Como instalar o Solr, é outra coisa. Existem muitas maneiras de fazer isso. Alguns exemplos abaixo.

Instalação

OS X

A maneira mais simples é instalar o Apache Solr mais recente usando o Homebrew, por exemplo:

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

Agora, a instância do Solr instalada está acessível em: http: // localhost: 8983 /

Debian / Ubuntu

A maneira mais simples é instalar o Solr via apt:

sudo apt-get install solr-tomcat

via Puppet

Use o manifesto do Puppet para instalar o Solr. Aqui está um exemplo de solr4-tomcat.pp .

Manualmente (4.x ou 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

Verifique se está funcionando em: http: // localhost: 8983


Veja também:

kenorb
fonte