ElasticSearch設定方法 - kmycode/mastodon GitHub Wiki

全文検索を行うには、ElasticSearchサーバーが必要です。ここではMastodonと同じ端末にインストールする方法を案内しますが、別々のサーバーにしたほうがいいです。search deployという作業は必要ですが、いつでもサーバーを変更することはできます。
なおkmyblueにおいて、タグ検索、アンテナにElasticSearchは必要ありません。

kmyblueバージョン11までの設定方法

kmyblueでは、Sudachiプラグインの利用が前提になっています。Sudachiを使わないと動作しないようになっています。また、そのSudachiも『指定された方法で(Sudachiドキュメントと異なる方法で)』インストールしなければいけません。
手順としては、大体以下のような順番になります。

  1. ElasticSearchインストール
  2. Mastodonサーバー設定変更
  3. Sudachiインストール

1-2. ElasticSearchインストール/サーバー設定変更

ElasticSearchのインストール方法、サーバー設定変更方法(サーバー再起動はちょっと待って。後半にあるMastodonのソースコードを変更する作業は不要です)
https://docs.joinmastodon.org/admin/elasticsearch/

3. Sudachiインストール

下記URLの説明を見てElasticSearchにSudachiプラグインを追加してください。Sudachiプラグインは、ElasticSearchのバージョンによってダウンロードするファイルが分かれていますので、必ずお手元のElasticSearchのバージョンを確認して最適なファイルをダウンロードしてください。対応するバージョンがない場合もありますが、その時はElasticSearchのバージョンを下げます
Sudachiのインストール手順書と異なる点として、辞書ファイル(sudachi dictionary archive)は/etc/elasticsearch/sudachiに格納してください。

https://github.com/WorksApplications/elasticsearch-sudachi

Sudachiインストール終了後、追加で/etc/elasticsearch/sudachi/config.jsonに下記を記述して保存してください。system_full.dicを使用する場合は適宜systemDictプロパティの内容を置き換えてください。

{
  "systemDict": "system_core.dic"
}

Mastodonサーバーを再起動します。ElasticSearchとの疎通確認は、検索機能を通して試します。

kmyblueバージョン12以降の設定方法

  1. 「kmyblueバージョン11までの設定方法」を実行します(Sudachiを使わない場合、Sudachiのインストールは不要です)
  2. 以下コマンドを実行します。なおコピーを行わなかった場合は、本家MastodonのElasticSearch設定がそのまま適用されます
# バージョン11以前のkmyblueと同じ設定(Sudachiプラグインによる日本語検索)を利用したい場合
ln -s config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml    # 既存のElasticSearch設定をそのまま使う場合
cp config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml       # 自分でElasticSearch設定をカスタマイズしたい場合

# 本家Mastodonの設定をもとに自分でカスタマイズしたい場合(Kuromojiを使う、韓国・中国語用のプラグインを使うなどの場合)
# コピーした上で自分で編集する
cp config/elasticsearch.default.yml .elasticsearch.yml

/home/mastodon/live/.elasticsearch.yml.gitignoreに登録されていますので、このファイルを編集してもGitで競合は発生しません。本家のようにRubyのソースコードを直接いじることなく自由に編集できます。編集後は必要に応じてtootctl search deployを実行した上でMastodonの再起動が必要です。

.elasticsearch.ymlとアップデート

※この項目は、cpなどのファイルコピーによって.elasticsearch.ymlを生成したすべての環境に適用されます

kmyblueのアップデート時に.elasticsearch.ymlversionで指定されたバージョンが上がると、Mastodon起動時にエラーとなります。単にバージョン番号を変更するだけでなく、どこが変更されたか、新規に追加する必要のある設定がないか、リリースノート「その他」を必ず確認してください。 もし「elasticsearch.default-ja-sudachi.yml」をコピーしただけで編集していない場合は、再度ファイルコピーで問題ありません。

エラーが出ない場合でも、リリースノートは可能な限り毎回確認してください。デフォルトの設定が変更されている場合があります。

kmyblueバージョン11以前から12へ移行する方法

「kmyblueバージョン12以降の設定方法」の2のファイルコピーコマンドを実行してください

.elasticsearch.ymlのフォーマット

version:
  # 設定ファイルのバージョン

accounts:
  # アカウント検索の設定

public_statuses:
  # 投稿検索の設定(本家Mastodon(kmyblue、Fedibird以外)でindexableを有効にしたアカウントの投稿向け)

statuses:
  # 投稿検索の設定

tags:
  # ハッシュタグ検索の設定

accounts_analyzers:
public_statuses_analyzers:
statuses_analyzers:
tags_analyzers:
  # それぞれの検索において、どのanalyzerを使うかの設定です
  # それぞれの検索設定でanalyzerの名前を変更する、新しいanalyzerを追加する、
  # 既存のanalyzerを削除するなどした場合は
  # こちらの設定も適宜変更する必要があります