Установка и настройка Elasticsearch на Debian

Установка и настройка Elasticsearch на Debian
Совместимость с XenForo
XenForo 1.3
,
XenForo 1.4
,
XenForo 1.5
Инструкция актуальна для Debian 8 версии. Устанавливать Elasticsearch будем последней версии 2.1. Предполагается, что вы работаете из-под root'a и у вас уже установлены пакеты curl, sudo и wget, в противном случае выполните команду:
Код:
apt-get install curl sudo wget
1) Для начала, нам требуется установить виртуальную машину Java, так как Elasticsearch работает на ее основе. Для этого, добавляем репозиторий backports, т.к. в стандартном нужная версия отсутствует. Создаем файл /etc/apt/sources.list.d/backports.list со следующим содержимым:
Код:
deb http://http.debian.net/debian jessie-backports main contrib non-free
Или просто выполняем следующую команду:
Код:
echo "deb http://http.debian.net/debian jessie-backports main contrib non-free" | sudo tee -a /etc/apt/sources.list.d/backports.list
После добавления репозитория можно установить саму java. Выполняем следующую команду:
Код:
apt-get install openjdk-8-jre
И терпеливо ждем скачивания и сборки всех 100+ зависимых пакетов.

2) Добавляем репозиторий Elastic. Создаем файл /etc/apt/sources.list.d/elasticsearch-2.x.list со следующим содержимым:
Код:
deb http://packages.elastic.co/elasticsearch/2.x/debian stable main
Или просто выполняем следующую команду:
Код:
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
После чего добавляем публичный GPG-ключ репозитория:
Код:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
И обновляем кеш менеджера пакетов:
Код:
apt-get update
3) Устанавливаем сам Elasticsearch:
Код:
apt-get install elasticsearch
И разрешаем его автозапуск:
Код:
/bin/systemctl daemon-reload
/bin/systemctl enable elasticsearch.service
4) Редактируем файл /etc/elasticsearch/elasticsearch.yml, и в самый его конец вставляем конструкцию следующего вида (если основной язык вашего форума русский, для украинского требуется иная из-за диакритических знаков):
Код:
cluster.name: my_index
index.analysis.analyzer.default.type: custom
index.analysis.analyzer.default.tokenizer: standard
index.analysis.analyzer.default.filter: ["standard", "lowercase", "stop", "snow"]
index.analysis.filter.snow.type: snowball
index.analysis.filter.snow.language: Russian
Где my_index - желаемое название вашего кластера индексов строго на английском языке без специальных знаков кроме нижнего подчеркивания.

Также нужно поправить параметр ES_HEAP_SIZE в файле /etc/default/elasticsearch, который показывает, какой максимальных объем оперативной памяти может использовать Elasticsearch на вашем сервере. Для небольших форумов рекомендую значение в 256 Мб, а для форума с 1 миллионом сообщений размера в 1 Гб более чем достаточно. Больше ставить не нужно.

5) Перезапускаем Elasticsearch
Код:
systemctl restart elasticsearch
И проверяем работает ли он, примерно через 30 секунд после перезапуска:
Код:
curl http://localhost:9200
Вывод команды должен быть примерно следующим:
Код:
[email protected]:~# curl http://localhost:9200
{
  "name" : "Prometheus",
  "cluster_name" : "server_index",
  "version" : {
    "number" : "2.0.0",
    "build_hash" : "de54438d6af8f9340d50c5c786151783ce7d6be5",
    "build_timestamp" : "2015-10-22T08:09:48Z",
    "build_snapshot" : false,
    "lucene_version" : "5.2.1"
  },
  "tagline" : "You Know, for Search"
}
Если в выводе нет ничего и команда ругается на невозможность подключения к указанному порту - изучаем логи на предмет явных ошибок. Все достаточно просто - смотрим на вывод команды: systemctl status elasticsearch.
6) Настраиваем XenForo для работы с Elasticsearch.
Устанавливаем дополнение XenForo Enhanced Search (+ русификация) и заходим в настройки поиска (admin.php?options/list/searchOptions).

Включаем галку работы с Elasticsearch и устанавливаем произвольное имя индекса, согласно рекомендациям движка. Если у вас один форум с расширенным поиском на сервере - можно использовать имя кластера из 4 шага этой инструкции. Остальные настройки не трогаем и снимаем галочку использования динамических сценариев, если она у вас установлена.

7) Обязательно перестраиваем поисковый индекс на странице перестраивания кешей (admin.php?tools/rebuild), не забывая установить галочку "Удалить весь индекс перед перестраиванием", поскольку в базе данных у вас больше поисковый индекс храниться не будет и это позволит освободить достаточно большое количество места в ней.

В принципе, после выполнения этого шага, у вас на форуме уже полноценно будет работать Elasticsearch, в чем вы можете убедиться самостоятельно, что-либо поискав или на специальной странице в админке (admin.php?elasticsearch).
Автор
Next
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Next

  • XF2 [8WR] XenPorta 2 (Portal) PRO
    XF2 [8WR] XenPorta 2 (Portal) PRO
    Портал для XenForo 2
  • Similar threads
    Similar threads
    Отображение похожих тем при просмотре темы / при создании новой темы
  • Elasticsearch
    Elasticsearch
    Просмотр информации об индексе ElasticSearch для администратора
  • New thread email admin
    New thread email admin
    Плагин отправит уведомление на E-mail администратору или другому члену команды о новой теме.
  • New members
    New members
    Плагин позволит команде форума увидеть информацию о новых пользователях.