Установка 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/install-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.

Кредит и реквизит уходит в Pacoup


1
Отличный гид. В разделе «Настройка Tomcat» отсутствует XML на шаге 2: «Затем добавьте эти аргументы XML между тегами» ... XML не указан.
— Джордан Магнусон

Хм, это там, но вы не видите его, может быть, причина вашего браузера? Позвольте мне попытаться изменить выходной сигнал, чтобы это исправить
— shaneonabike

На самом деле я только что проверил, и я использую правильные теги кода?
— shaneonabike

Смотрите скриншот: i.imgur.com/s1jlunf.png
— Джордан Магнусон,

Я починил это. XML-код должен быть помещен между ``
— Джордан Магнусон


1

Вот как это описано в документации сообщества Drupal ( установка Solr на Tomcat ):

CentOS

В этом пошаговом руководстве предполагается, что у вас уже установлен Tomcat. Если вы этого не сделаете, то, вероятно, проще просто использовать WHM, установить его там и пересобрать apache. Укажи и щелкни - вот что я скажу.

После установки 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.java:546) в ...

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

    Перейти 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, перейдите сюда и установите / настройте Nutch .

Для Apachesolr в Drupal 6.x см .: Настройка Drupal 6.x с Apache Solr на Tomcat6 и Ubuntu .


1

Все версии Solr должны работать с Drupal, пока у вас есть модуль, который поддерживает его.

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

Для модуля поиска API Solr Search вы можете найти файлы конфигурации для Solr: 3.x, 4.x и 5.x, так что это не должно быть проблемой.

Как установить Solr, это другое дело. Есть много способов сделать это. Несколько примеров ниже.

Установка

OS 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

через куклу

Используйте Puppet manifest для установки 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.