ElasticSearch設定方法 - kmycode/mastodon GitHub Wiki
全文検索を行うには、ElasticSearchサーバーが必要です。ここではMastodonと同じ端末にインストールする方法を案内しますが、別々のサーバーにしたほうがいいです。search deploy
という作業は必要ですが、いつでもサーバーを変更することはできます。
なおkmyblueにおいて、タグ検索、アンテナにElasticSearchは必要ありません。
kmyblueバージョン11までの設定方法
kmyblueでは、Sudachiプラグインの利用が前提になっています。Sudachiを使わないと動作しないようになっています。また、そのSudachiも『指定された方法で(Sudachiドキュメントと異なる方法で)』インストールしなければいけません。
手順としては、大体以下のような順番になります。
- ElasticSearchインストール
- Mastodonサーバー設定変更
- 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以降の設定方法
- 「kmyblueバージョン11までの設定方法」を実行します(Sudachiを使わない場合、Sudachiのインストールは不要です)
- 以下コマンドを実行します。なおコピーを行わなかった場合は、本家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.yml
のversion
で指定されたバージョンが上がると、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を削除するなどした場合は
# こちらの設定も適宜変更する必要があります