Встановлення Apache Solr 4.6.0 та сумісність з Drupal7


14

У мене виникають труднощі з установкою Apache Solr. Остання версія, яку я завантажив, була 4.6.0. Але вся документація та підручники щодо Drupal (див. Http://www.youtube.com/watch?v=ori-VvvH1Aw ) говорять про 3.5.0. Хоча 3.5.0 ніде не знайдено в Інтернеті, 4.6.0 має абсолютно іншу структуру каталогів, і немає документації щодо встановлення цієї останньої версії на сервер або на локальний WAMP. Не згадується, які версії Apache Solr найбільше рекомендують працювати з Drupal? Будь-яка допомога?


Тут чудова стаття: lullabot.com/blog/article/installing-solr-use-drupal, яка працювала на мене 4.5.1. Якщо ви хочете використовувати Search API Solr, я написав приклад інсталяції для Ubuntu 12.04 тут: drupal.org/node/2143715
Домінік Вудман

Відповіді:


21

Ви не самотні, мені довелося шукати Інтернет та читати кілька статей, перш ніж я справді все це зрозумію. Я спробував про три різні методи, поки нарешті не зрозумів!

Якщо ви використовуєте Debian / Ubuntu (з Tomcat7), це ще простіше, ніж більшість контурів. Я віддав перевагу цьому над Lullabot, оскільки коли ви встановлюєте його через Ubuntu, це насправді сервіс і менш химерний :)

Встановіть Java

apt-get install java7-jdk

Встановити Tomcat

apt-get install tomcat7 tomcat7-admin

Після цього ви зможете дістатися http://localhost:8080і побачити, що це все працює належним чином.

Примітка . Рекомендується перенести порт на інший, оскільки 8080 досить поширений. Якщо ви хочете це зробити, використовуйте для цього цей код!

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

Налаштуйте Tomcat

  1. Ви хочете фактично створити обліковий запис користувачів для Tomcat, щоб інші люди повинні увійти до адміністратора (це забезпечує його безпечніше).

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

  2. Потім додайте ці аргументи xml між <tomcat-users>тегами

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

  3. Тепер ви можете перезапустити tomcat ще раз і переглянути сторінку адміністратора на http://localhost:8983/manager/html

    service tomcat7 restart

Встановити Solr

  1. Завантажте останню версію ApacheSolr тут (Коли я написав це, я отримав це, працюючи з 4.7)

  2. Витягніть файли в каталог

Скопіюйте файли бібліотеки Solr

Далі ми хочемо додати бібліотечні файли до каталогу бібліотеки Tomcat. Примітка: Ви також можете використовувати символьні посилання, якщо хочете, але для розуміння куди йде все, я вирішив розмістити його безпосередньо в каталогах

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

Можливо, також буде копія бібліотек Java з solr / dist / solrrj-lib / *

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

Скопіюйте файл програми Solr WAR

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

Налаштування ядра Drupal ApacheSolr

  1. Спочатку нам потрібно скопіювати зразки файлів конфігурації з ApacheSolr.

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

  2. Далі візьміть останню версію модуля apachesolr https://drupal.org/project/apachesolr та розпакуйте

    tar xvf apachesolr-*.tar.gz

  3. Синхронізуйте файли конфігурації apachesolr (для Drupal) з конфігурацією solr

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

Примітка. Я виявив помилку, при якій ApacheSolr відмовився запускатися через дублюючі помилки. Я повідомив, що тут, тож ви, можливо, захочете подивитися на рішення тут, оскільки під час написання цього запиту я не зміг би його запустити!

  1. Створіть основний файл визначення, щоб повідомити Apache Solr, які ядра доступні.

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

  2. Вставте наступний код у цей файл

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

Створіть основний каталог Drupal

Це створить нове ядро ​​у вашій системі з таким ім'ям. Якщо ви хочете додати більше, ви просто можете повторити цей крок, а також описаний вище.

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

Давайте змусимо його жити

  1. Ваш на останньому розтягуванні !! Давайте покладемо tomcat7 спати

    service tomcat7 stop

  2. Тепер змініть дозволи на каталог tomcat

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

  3. Почніть його назад

    service tomcat7 start

Це в прямому ефірі

Ви повинні мати можливість перейти до http://localhost:8983/solrнового доступного екземпляра! Тепер ви можете йти вперед і налаштувати drupal, щоб вказати на це.

Примітка: Ваше нове ядро ​​розташоване на, http://localhost:8983/solr/!!yourcorename!!яке буде використовуватися в модулі Drupal ApacheSolr.

Кредит і реквізит виходять у Пакоп


1
Чудовий путівник. У розділі "Налаштувати Tomcat" у кроці 2 відсутній xml: "Потім додайте ці аргументи xml між тегами" ... xml не вказано.
Джордан Магнусон

Хм, це там, але ви не бачите, це може бути причиною вашого браузера? Дозвольте спробувати змінити вихід, щоб це виправити
shaneonabike

Насправді я щойно перевірив і використовую належні теги коду?
shaneonabike

Дивіться знімок екрана: i.imgur.com/s1jlunf.png
Jordan Magnuson

Я полагодив це. Код xml потрібно розмістити між ``
Jordan Magnuson


1

Ось як це описано в Документації спільноти Drupal ( Встановлення Solr на Tomcat ):

CentOS

Ця інструкція передбачає, що у вас вже встановлено Tomcat. Якщо ви цього не зробите, можливо, простіше просто використати WHM та встановити його там та відновити апаш. Точка та клацання - це те, що я кажу.

Після встановлення Tomcat ви можете перевірити його встановлення, перейшовши до:

domain.com:8080 

Ви повинні побачити сторінку Tomcat за замовчуванням. Якщо ні, попросіть когось про допомогу. Якщо ви цього не зробите, ви шкодите наступній людині, яка приходить разом з тим же питанням. Якби ми не хотіли допомогти, ми не були б відкритим кодом.

Завантажте свою копію Solr. Якщо ви не знаєте, де його взяти, google.

Щоб зробити справи простішими зараз і в майбутньому, знайдіть свою установку Tomcat

$ locate tomcat

Створіть м'яке посилання так:

ln -s /my/tomcat/location /tomcat

Якщо ти зробив це правильно, ти повинен був би вміти просто

$ /tomcat

в sshd і перейдіть до свого каталогу.

Я буду використовувати /libкаталог для свого прикладу. Якщо у вас його немає, створіть його mkdir /libкомандою.

  1. Витягніть Solr до тимчасового місця, заради мене я просто отримую zip-файл із дзеркал Solr.

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

    Створіть свій Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Перейменуйте свій військовий файл для зручності використання.

    $ 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. Скопіювати solr.warв/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. Скопіюйте файли xml із свого місця розташування apachesolr. Зазвичай це буде:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Створіть xml-файл у Tomcat, щоб запропонувати йому запустити Solr при запуску Tomcat

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

    Вставте це у новий файл:

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

    Два значення, які слід налаштувати, це Context :: docBase (щоб вказати на ваш .war файл) та Environment :: value (вказати на ваш каталог solr). Зауважте, що в цьому прикладі файл .war знаходиться в каталозі solr, що є чітким шаблоном.

    {Натисніть, Escapeа потім :w}, а потім {Натисніть клавішу втечі, а потім :q}

  6. Перезавантажте Tomcat за допомогою WHM для зручності. Це в розділі Послуги перезапуску. Тоді йдіть сюди:

    yourdomainname.com:8080/solr/admin

    Ви можете отримати цю помилку:

    false у нульовому значенні ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: Не вдається створити каталог: / usr / share / solr / data / index на org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) на org.apache.solr.core.SolrCore. (SolrCore.javajanju46) у ...

    Не панікуйте. Я гатча!

    Перейдіть solrconfig.xmlзнову

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

    і змінити цей рядок:

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

    до

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

    Перезапустіть Tomcat ще раз і перейдіть сюди:

    yourdomainname.com:8080/solr/admin

    РОБИТИ ЦЕ, ЩО ВИ ВЖЕ НЕ МАЄТЕ:

    Перейдіть до файлу schema.xml у /lib/solr/example/solr/conf:

    $ vi schema.xml

    Додайте це в розділ відразу після <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"/>

    Збережіть і вийдіть { EscapeКнопка натискання ) :w(Натисніть Enter), потім ( EscapeКнопка) :q(Натисніть Enter)

    Якщо ви використовуєте Nutch, перейдіть сюди та встановіть / налаштуйте гайку .

Про Apachesolr в Drupal 6.x див. У розділі: Налаштування Drupal 6.x з Apache Solr на Tomcat6 та Ubuntu .


1

Усі версії solr повинні працювати з Drupal, якщо у вас є модуль, який його підтримує.

Наприклад, модуль Apachesolr має файли конфігурації для: Solr: 3.x та 4.x.

Для модуля пошуку API Solr ви можете знайти файли конфігурації для Solr: 3.x, 4.x та 5.x, тому це не повинно бути проблемою.

Як встановити Solr, це інша річ. Існує багато способів зробити це. Кілька прикладів нижче.

Установка

ОС X

Найпростіший спосіб - встановити найновіший Apache Solr за допомогою Homebrew, наприклад:

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

Тепер встановлений екземпляр Solr доступний за адресою: http: // localhost: 8983 /

Debian / Ubuntu

Найпростіший спосіб - встановити Solr через apt:

sudo apt-get install solr-tomcat

через Лялечку

Використовуйте маніфест "Лялька", щоб встановити Solr. Ось один приклад solr4-tomcat.pp .

Вручну (4.x або 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

Перевірте, чи працює він за адресою: http: // localhost: 8983


Дивись також:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.