Встановлення 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.