-
-
Notifications
You must be signed in to change notification settings - Fork 8
ElasticSearch設定方法
全文検索を行うには、ElasticSearchサーバーが必要です。ここではMastodonと同じ端末にインストールする方法を案内しますが、別々のサーバーにしたほうがいいです。search deploy
という作業は必要ですが、いつでもサーバーを変更することはできます。
なおkmyblueにおいて、タグ検索、アンテナにElasticSearchは必要ありません。
kmyblueでは、Sudachiプラグインの利用が前提になっています。Sudachiを使わないと動作しないようになっています。また、そのSudachiも『指定された方法で(Sudachiドキュメントと異なる方法で)』インストールしなければいけません。
手順としては、大体以下のような順番になります。
- ElasticSearchインストール
- Mastodonサーバー設定変更
- Sudachiインストール
ElasticSearchのインストール方法、サーバー設定変更方法(サーバー再起動はちょっと待って。後半にあるMastodonのソースコードを変更する作業は不要です)
https://docs.joinmastodon.org/admin/elasticsearch/
下記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バージョン11までの設定方法」を実行します
- 以下コマンドを実行します
cp config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml
# 設定ファイルをいじるつもりがないのなら ln でシンボリックリンクを貼る方法でもいいかもしれない(未確認)
/home/mastodon/live/.elasticsearch.yml
は.gitignore
に登録されていますので、このファイルを編集してもGitで競合は発生しません。本家のようにRubyのソースコードを直接いじることなく自由に編集できます。編集後は必要に応じてtootctl search deploy
を実行した上でMastodonの再起動が必要です。
ただしkmyblueの今後のバージョンアップで、再度設定ファイルの更新作業が必要になる場合があります。
ElasticSearchを利用する場合は、リリースノートの「その他」をこまめに確認してください。アップデート後にElasticSearchやChewyまわりでエラーが出る場合もリリースノートを確認してください。
「kmyblueバージョン12以降の設定方法」の2のファイルコピーコマンドを実行してください
accounts:
# アカウント検索の設定
public_statuses:
# 投稿検索の設定(本家Mastodon(kmyblue、Fedibird以外)でindexableを有効にしたアカウントの投稿向け)
statuses:
# 投稿検索の設定
tags:
# ハッシュタグ検索の設定
accounts_analyzers:
public_statuses_analyzers:
statuses_analyzers:
tags_analyzers:
# それぞれの検索において、どのanalyzerを使うかの設定です
# それぞれの検索設定でanalyzerの名前を変更する、新しいanalyzerを追加する、
# 既存のanalyzerを削除するなどした場合は
# こちらの設定も適宜変更する必要があります