Misskey 2025.1.0(注: 執筆時点ではベータ版)で検索エンジンにPGroongaが選べるようになりました。
PGroongaはPostgreSQLの高速全文検索を行う拡張機能です。デフォルトの検索よりMisskeyの検索が高速になります。
実施前にバックアップを取ることをお勧めします。
検証環境
- Ubuntu 24.04
- Misskey 2025.1.0-beta.1
- PostgreSQL 16
PGroongaのインストール
Ubuntuにインストール | PGroongaに従ってインストールをします。
私はUbuntu 24.04、PostgreSQL 16の環境を使っているため、次のようにしました。
|
|
MisskeyのデフォルトでインストールされるPostgreSQLは15であるため、人によっては postgresql-15-pgdg-pgroonga
とする必要があるかもしれません。
psql -V
などでバージョンを確認してください。
PGroongaの有効化
次にPostgreSQLにログインし、PGroongaを有効化します。
PostgreSQLの拡張機能は明示的に有効化する必要があるようです。
|
|
ログインをしたら、Misskeyのデータベースを選択します。
|
|
PGroongaを有効化します。
|
|
PGroongaのインデックス作成
PGroonga用のインデックスを作成します。
feat(backend): pgroongaに対応(configの構成変更あり) by samunohito · Pull Request #14978 · misskey-dev/misskeyを真似します。
この処理には時間がかかります。私の環境ではおよそ600万行の投稿に対し、10分程度かかりました。
インデックス処理中は書き込み処理はできないため、ノートの投稿は失敗します。(concurrentlyオプションを使えば書き込みしながら処理できるかもしれませんが、私は未確認です。)
|
|
Misskeyの設定変更
Misskeyの設定ファイルを編集します。
fulltextSearchをsqlPgroongaに変更します。
|
|
Misskeyのプロセスを再起動すれば完了です。
おまけ
インデックスを作成しても検索が遅いことがあります。その際はPostgreSQLへログインし、vacuumを行います。
この処理にも時間がかかることがあります。
|
|
有識者より、Pgroongaはログでディスクをひっ迫するため、ログの出力レベルをWARNにすることをおすすめされました。デフォルトはNOTICEです。
pgroonga.log_levelパラメーター | PGroonga
設定ファイルに記載することで永続化できます。(私は未実施)
アンインストール方法
PostgreSQLからPGroongaをアンインストールします。
|
|
Ubuntuから削除します。
|
|