Инструменты пользователя

Инструменты сайта


mastodon-es

Полнотекстовый поиск

Mastodon поддерживает полнотекстовый поиск, если на сервере доступен ElasticSearch. Он позволяет залогиненным пользователям искать в собственных статусах, избранном и упоминаниях. Поиск по всей базе данных сознательно запрещён.

Для работы ES требуются библиотеки Java runtime. Если вы ещё не установили Java, выполните от рута следующую команду:

apt install openjdk-8-jre-headless

Теперь добавьте официальный репозиторий ES:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt update

.. и установите ElasticSearch:

apt install elasticsearch

Замечание касательно безопасности: по умолчанию ElsaticSearch слушает только локальный адрес, то есть с других хостов сети недоступен. Вы можете проверить (и изменить), адрес ElasticSearch в переменной network.host в файле /etc/elasticsearch/elasticsearch.yml. Учитывайте, что любой, имеющий доступ к ElasticSearch можетпросматривать и изменять его данные, так как прослойки авторизации там нет. Потому крайне важно обезопасить этот доступ. Рекомендуется оставить открытыми только порты 22, 80 и 443, как указанао в основной инструкции по установке. В случае мультисерверной установки, предполагается, что вы в состоянии обезопасить внутренний траффик.

Запустите ElasticSearch:

systemctl enable elasticsearch
systemctl start elasticsearch

и настройте Mastodon:

в файле ``.env.production`` добавьте переменные:

ES_ENABLED=true
ES_HOST=localhost
ES_PORT=9200

В случае, если у вас несколько серверов Mastodon на одной машине, и вы планируете использовать для них одну инстанцию ElasticSearch, убедитесь, что в их настройках задан уникальный для каждой REDIS_NAMESPACE. Если вам требуется принудительно указать префикс для индекса ElasticSearch, его можно напрямую указать в переменной ES_PREFIX.

— Сохранив настройки, создайте индекс ElasticSearch:

RAILS_ENV=production bundle exec rake chewy:upgrade

И перезапустите процессы Mastodon для применения настроек:

systemctl restart mastodon-sidekiq
systemctl reload mastodon-web

С этого момента новые статусы будут писаться в индекс ElasticSearch. Завершающим щагом будет импорт старых данных (может занять определённое время):

RAILS_ENV=production bundle exec rake chewy:sync

Примечание. В Ruby 2.6.0 есть известный баг, не позволяющий выполнить данную операцию. В других версиях, например 2.6.1, всё работает.

mastodon-es.txt · Последние изменения: 2019/05/31 00:23 — admin