Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров7.3K

После долгого перерыва, я решил написать очередную статью об 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/default/tomcat6 необходимо указать домашнюю директорию solr — /var/solr. Для этого редактируем параметр JAVA_OPTS
sudo nano /etc/default/tomcat6

И выставляем там:
JAVA_OPTS="$JAVA_OPTS -Dsolr.home=/var/solr"

После этого перезагружаем tomcat:
sudo /etc/init.d/tomcat6 restart

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

В случае успеха, вы должны увидеть примерно такую картинку


По умолчанию уже есть два ядра, но для того чтобы можно было использовать конфиг и схему из 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 + Apache Solr?
88.89% Статьи интересные и полезные40
8.89% На троечку4
2.22% Эти статьи не нужны1
Проголосовали 45 пользователей. Воздержались 18 пользователей.
Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии5

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань