Поиск на Drupal 7 с помощью Apache Solr ч.6 — настраиваем apache solr + tomcat

в 3:11, , рубрики: apache solr, cms, drupal, drupal 7, search api, search index, tomcat, Веб-разработка, поиск, метки: , , , , ,

Поиск на Drupal 7 с помощью Apache Solr ч.6 — настраиваем apache solr + tomcat
После долгого перерыва, я решил написать очередную статью об apache solr и drupal. В этот раз речь пойдёт о настройке tomcat для того, чтобы apache solr мог работать, как демон. В интернете уже есть много разных мануалов по настройке tomcat, но не всегда они подходят для работы с drupal. В частности я настраивал tomcat и apache solr работал прекрасно. Но после того, как я подменил стандартные конфиги солра на конфиги друпала, солр перестал работать (начали вылетать java эксепшены).

Итак перейдем к делу.

Моя конфигурация

Ubuntu server 12.04
Apache solr 3.6.1
Drupal 7
Модули для поиска — search api и search_api_solr

А теперь установка

Устанавливаем tomcat

sudo apt-get install tomcat6

Скачиваем и распаковываем apache solr во временную директорию

mkdir /tmp/solr/ 

cd /tmp/solr/

wget http://archive.apache.org/dist/lucene/solr/3.6.1/apache-solr-3.6.1.tgz

tar xzvf apache-solr-3.6.1.tgz

Затем создаем директорию в которой будет работать на сервер Apache solr и копируем туда необходимые файлы

sudo mkdir /var/solr

Копируем war файл
sudo cp apache-solr-3.6.1/dist/apache-solr-3.6.1.war /var/solr/solr.war

Примеры ядер и конфиг для использования нескольких ядер.
sudo cp -R apache-solr-3.6.1/example/multicore/* /var/solr/

sudo chown -R tomcat6 /var/solr/

Связываем tomcat с нашим сервером Apache solr

echo -e '<Context docBase="/var/solr/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">n<Environment name="solr/home" type="java.lang.String" value="/var/solr" override="true" />n</Context>' | sudo tee -a /etc/tomcat6/Catalina/localhost/solr.xml

echo 'TOMCAT6_SECURITY=no' | sudo tee -a /etc/default/tomcat6

Теперь в файле /etc/init.d/tomcat6 необходимо указать домашнюю директорию solr — /var/solr. Для этого редактируем параметр JAVA_OPTS

sudo nano /etc/init.d/tomcat6

И выставляем там:

if [ -z "$JAVA_OPTS" ]; then
        JAVA_OPTS="$JAVA_OPTS -Dsolr.home=/var/solr"
fi

После этого перезагружаем tomcat:

sudo /etc/init.d/tomcat6 restart

Убеждаемся что все работает, для этого можно перейти по урлу localhost:8080/solr/

В случае успеха, вы должны увидеть примерно такую картинку
Поиск на Drupal 7 с помощью Apache Solr ч.6 — настраиваем apache solr + tomcat

По умолчанию уже есть два ядра, но для того чтобы можно было использовать конфиг и схему из search_api для друпала, создадим новое ядро.
Сперва вписываем его в /var/solr/solr.xml

В конце файла описаны ядра, в моем случае, после добавления ядра, конфиг выглядит следующим образом:

<solr persistent="false">

  <!--
  adminPath: RequestHandler path to manage cores.  
    If 'null' (or absent), cores will not be manageable via request handler
  -->
  <cores adminPath="/admin/cores">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
    <core name="drupal" instanceDir="drupal" />
  </cores>
</solr>

Затем копируем файлы из скачанного apache solr для нашего ядра которое будет работать с Drupal.

sudo mkdir /var/solr/drupal

sudo cp -R /tmp/solr/apache-solr-3.6.1/example/solr/* /var/solr/drupal

Кладем туда конфиг и схему из модуля search_api_solr

Снова перезагружаем tomcat командой

sudo /etc/init.d/tomcat6 restart

Устанавливаем настройки солра в Drupal
Поиск на Drupal 7 с помощью Apache Solr ч.6 — настраиваем apache solr + tomcat

Теперь индексируем контент и наслаждаемся работой поиска!

Статьи вроде хорошие, но активности что-то мало. В некоторых статьях из этого цикла даже комментариев нет, вдруг никому не интересно? Буду рад конструктивным замечаниям в комментариях.

Автор: IlyinEugene

Источник

Поделиться

* - обязательные к заполнению поля