Skip to content

ElasticSearch設定方法

KMY(雪あすか) edited this page Mar 8, 2024 · 15 revisions

全文検索を行うには、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プラグインによる日本語検索)を利用したい場合
cp config/elasticsearch.default-ja-sudachi.yml .elasticsearch.yml

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

# 設定ファイルをいじるつもりがないのなら ln でシンボリックリンクを貼る方法でもいいかもしれない(未確認)

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

ただし.elasticsearch.ymlを作成した場合、kmyblueの今後のバージョンアップで、再度設定ファイルの更新作業が必要になることがあります。
ElasticSearchを利用する場合は、リリースノートの「その他」をこまめに確認してください。アップデート後にElasticSearchやChewyまわりでエラーが出る場合もリリースノートを確認してください。

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

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

.elasticsearch.ymlのフォーマット

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

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

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

statuses:
  # 投稿検索の設定

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

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