Instalacja Apache Solr 4.6.0 i zgodność z Drupal7

14

Mam problemy z instalacją Apache Solr. Najnowsza wersja, którą pobrałem, to 4.6.0. Ale cała dokumentacja i tutoriale Drupala (patrz http://www.youtube.com/watch?v=ori-VvvH1Aw ) mówią o 3.5.0. Podczas gdy w Internecie nie ma wersji 3.5.0, 4.6.0 ma zupełnie inną strukturę katalogów i nie ma dokumentacji dotyczącej instalacji tej najnowszej wersji na serwerze lub na lokalnym WAMP. Nie ma wzmianki o tym, które wersje Apache Solr są najbardziej zalecane do pracy z Drupalem? Jakaś pomoc?

drupalina
źródło
Jest tutaj doskonały artykuł: lullabot.com/blog/article/installing-solr-use-drupal Który działał dla mnie w 4.5.1. Jeśli chcesz użyć Search API Solr, napisałem tutaj przykładową instalację dla Ubuntu 12.04: drupal.org/node/2143715
Dominic Woodman,

Odpowiedzi:

21

Nie jesteś sam, musiałem przeszukać Internet i przeczytać kilka artykułów, zanim naprawdę to wszystko zrozumiem. Próbowałem około trzech różnych metod, aż w końcu udało mi się to dobrze!

Jeśli używasz Debian / Ubuntu (z Tomcat7), jest to nawet łatwiejsze niż większość konturu. Wolałem to niż Lullabot, ponieważ kiedy instalujesz go za pośrednictwem Ubuntu, jest to właściwie usługa i mniej majsterkowania :)

Zainstaluj Javę

apt-get install java7-jdk

Zainstaluj Tomcat

apt-get install tomcat7 tomcat7-admin

Gdy to zrobisz, możesz dostać się http://localhost:8080i zobaczyć, że wszystko działa poprawnie.

Uwaga: Zaleca się przesunięcie portu na inny, ponieważ 8080 jest dość powszechny. Jeśli chcesz to zrobić, użyj do tego tego kodu!

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

Skonfiguruj Tomcat

  1. Będziesz chciał utworzyć konto użytkownika dla Tomcat, aby inne osoby musiały zalogować się do administratora (dzięki czemu będzie bezpieczniejsze).

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

  2. Następnie dodaj te argumenty xml między <tomcat-users>znacznikami

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

  3. Teraz możesz ponownie uruchomić tomcat ponownie i wyświetlić stronę administratora pod adresem http://localhost:8983/manager/html

    service tomcat7 restart

Zainstaluj Solr

  1. Pobierz najnowszą wersję ApacheSolr tutaj (kiedy to napisałem, działałem z wersją 4.7)

  2. Wyodrębnij pliki do katalogu

Skopiuj pliki biblioteki Solr

Następnie chcemy dodać pliki biblioteki do katalogu biblioteki Tomcat. Uwaga: Możesz również użyć dowiązań symbolicznych, jeśli wolisz, ale w celu zrozumienia, dokąd wszystko idzie, postanowiłem umieścić je bezpośrednio w katalogach

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

Dobrym pomysłem może być również skopiowanie bibliotek Java z solr / dist / solrrj-lib / *

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

Skopiuj plik aplikacji Solr WAR

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

Skonfiguruj rdzeń Drupal ApacheSolr

  1. Najpierw musimy skopiować przykładowe pliki konfiguracyjne z ApacheSolr.

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

  2. Następnie pobierz najnowszą wersję modułu apachesolr https://drupal.org/project/apachesolr i rozpakuj go

    tar xvf apachesolr-*.tar.gz

  3. Zsynchronizuj pliki konfiguracyjne apachesolr (dla Drupal) z konfiguracją solr

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

Uwaga: Znalazłem błąd, w którym ApacheSolr odmówił uruchomienia z powodu duplikatów błędów. Zgłosiłem to tutaj, więc możesz przyjrzeć się rozwiązaniu tutaj, ponieważ w momencie pisania tego nie mogłem uruchomić go bez tego!

  1. Utwórz plik definicji rdzenia, aby poinformować Apache Solr, które rdzenie są dostępne.

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

  2. Wklej następujący kod do tego pliku

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

Utwórz katalog główny Drupal

Spowoduje to utworzenie nowego rdzenia w systemie o tej nazwie. Jeśli chcesz dodać więcej, możesz po prostu powtórzyć ten krok, jak również powyższy.

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

Let's Make It Live

  1. Twoje na ostatnim odcinku !! Uśpijmy tomcat7

    service tomcat7 stop

  2. Teraz zmień uprawnienia do katalogu tomcat

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

  3. Uruchom ponownie

    service tomcat7 start

To jest na żywo

Powinieneś być w stanie iść do http://localhost:8983/solr nowej podstawowej instancji! Teraz możesz śmiało skonfigurować Drupala, aby na to wskazywał.

Uwaga: Twój nowy rdzeń znajduje się w http://localhost:8983/solr/!!yourcorename!!celu użycia w module Drupal ApacheSolr.

Kredyty i rekwizyty trafiają do Pacoup

shaneonabike
źródło
1
Świetny przewodnik W sekcji „Konfiguruj Tomcat” brakuje xml w kroku 2: „Następnie dodaj te argumenty xml między znacznikami” ... nie podano xml.
Jordan Magnuson
Hmm, jest tam, ale nie możesz tego zobaczyć z powodu przeglądarki? Pozwól mi spróbować zmienić wyjście, aby to naprawić
shaneonabike
Właściwie właśnie sprawdziłem i używam odpowiednich znaczników kodu?
shaneonabike
Zobacz zrzut ekranu: i.imgur.com/s1jlunf.png
Jordan Magnuson
Naprawiłem to. Kod XML należy umieścić między ``
Jordan Magnuson
1

Zmiany w Solr 4 zostały omówione w kolejce problemów: https://drupal.org/node/1676224

Wydanie zawiera wiele linków do witryn piaskownicy i samouczków.

Urszula
źródło
1

Oto, jak to opisano w Dokumentacji społeczności Drupal ( Instalowanie Solr na Tomcat ):

CentOS

Ta instrukcja zakłada, że ​​masz już zainstalowany Tomcat. Jeśli nie, prawdopodobnie łatwiej jest po prostu użyć WHM i zainstalować go tam i odbudować apache. Wskaż i kliknij to, co mówię.

Po zainstalowaniu Tomcat możesz zweryfikować jego instalację, przechodząc do:

domain.com:8080 

Powinieneś zobaczyć domyślną stronę Tomcat. Jeśli nie, poproś kogoś o pomoc. Jeśli nie, krzywdzisz następną osobę, która ma ten sam problem. Gdybyśmy nie chcieli pomóc, nie bylibyśmy Open Source.

Pobierz swoją kopię Solr. Jeśli nie wiesz, gdzie go zdobyć, google go.

Aby ułatwić sobie teraz i w przyszłości, znajdź swoją instalację Tomcat

$ locate tomcat

Utwórz miękki link w następujący sposób:

ln -s /my/tomcat/location /tomcat

Jeśli zrobiłeś to dobrze, powinieneś być w stanie po prostu

$ /tomcat

w sshd i przejdź do katalogu.

Będę używał /libkatalogu w moim przykładzie. Jeśli nie masz, utwórz go za pomocą mkdir /libpolecenia.

  1. Rozpakuj Solr do tymczasowej lokalizacji, dla mojego dobra, właśnie otrzymuję plik zip z serwerów lustrzanych Solr.

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

    Zbuduj swój Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Zmień nazwę pliku wojny, aby ułatwić korzystanie z niego.

    $ 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. Skopiuj solr.wardo/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. Skopiuj pliki xml z lokalizacji apachesolr. Zwykle będzie to:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Utwórz plik xml w Tomcat, aby kazał mu uruchamiać Solr podczas uruchamiania Tomcat

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

    Wklej to do nowego pliku:

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

    Dwie wartości, które powinieneś dostosować to Context :: docBase (w celu wskazania pliku .war) i Environment :: value (w celu wskazania katalogu solr). Zauważ, że w tym przykładzie plik .war znajduje się w katalogu solr, co jest dobrym wzorcem do naśladowania.

    {Naciśnij, Escapea następnie :w}, a następnie {Naciśnij klawisz Escape, a następnie :q}

  6. Ponownie uruchom Tomcat za pomocą WHM. Jest objęty usługami ponownego uruchomienia. Następnie przejdź tutaj:

    yourdomainname.com:8080/solr/admin

    Możesz otrzymać ten błąd:

    false w null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: Nie można utworzyć katalogu: / usr / share / solr / data / index at org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) w org.apache.solr.core.SolrCore. (SolrCore.java:546) w ...

    Nie panikuj. Gatcha!

    Idź do solrconfig.xmljeszcze raz

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

    i zmodyfikuj ten wiersz:

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

    do

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

    Uruchom ponownie Tomcat i przejdź tutaj:

    yourdomainname.com:8080/solr/admin

    ZRÓB TO, JEŚLI NIE JUŻ JUŻ:

    Przejdź do pliku schema.xml w /lib/solr/example/solr/conf:

    $ vi schema.xml

    Dodaj to w sekcji zaraz po <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"/>

    Zapisz i wyjdź {Naciśnij Escapeprzycisk) :w(naciśnij Enter), a następnie (naciśnij Escapeprzycisk) :q(naciśnij Enter )

    Jeśli używasz Nutch, przejdź tutaj i zainstaluj / skonfiguruj nutch .

Aby zapoznać się z Apachesolr w Drupal 6.x, zobacz: Konfiguracja Drupal 6.x za pomocą Apache Solr na Tomcat6 i Ubuntu .

kenorb
źródło
1

Wszystkie wersje solr powinny współpracować z Drupalem, o ile masz moduł, który go obsługuje.

Na przykład moduł Apachesolr ma pliki konfiguracyjne dla: Solr: 3.x i 4.x.

W przypadku modułu wyszukiwania API Solr Search można znaleźć pliki konfiguracyjne dla Solr: 3.x, 4.x i 5.x, więc nie powinno to stanowić problemu.

Jak zainstalować Solr, to inna sprawa. Można to zrobić na wiele sposobów. Kilka przykładów poniżej.

Instalacja

OS X

Najprostszym sposobem jest zainstalowanie najnowszego Apache Solr przy użyciu Homebrew, np .:

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

Teraz zainstalowana instancja Solr jest dostępna pod adresem: http: // localhost: 8983 /

Debian / Ubuntu

Najprostszym sposobem jest instalacja Solr poprzez apt:

sudo apt-get install solr-tomcat

przez Puppet

Użyj manifestu Puppet, aby zainstalować Solr. Oto jeden przykład solr4-tomcat.pp .

Ręcznie (4.x lub 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

Sprawdź, czy działa na: http: // localhost: 8983


Zobacz też:

kenorb
źródło