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