HiÐΞClassic

PGroongaを使って自鯖のMisskeyで快適にエゴサする

aqz/tamaina
3 years ago
1. PGroongaのインストール2. PostgreSQLにpgroongaを適用3. Misskeyにパッチを適用*復旧方法

しなちくシステム氏のノート検索高速化記事 を基に、MisskeyインスタンスのPostgreSQLにPGroongaを導入して快適に全文検索ができるようにする方法をご紹介します。

いつも通りあまり難しい設定は必要ありません。3ステップの簡単な作業で導入できます。
Misskey運用・構築・開発関連記事リスト

1. PGroongaのインストール

公式サイトのドキュメントに従ってインストールしてください。

インストールシェルスクリプトの環境ではUbuntuの公式リポジトリ用の節に従います。
必要な部分のコマンドを下記に引用します。

sudo apt install -y software-properties-common
sudo add-apt-repository -y universe
sudo add-apt-repository -y ppa:groonga/ppa
sudo apt install -y wget lsb-release
wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb
sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release --codename --short)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install -y -V postgresql-13-pgdg-pgroonga

(シェルスクリプトでインストールするPostgreSQLバージョンが変更されている場合、postgresql-13-pgdg-pgroonga の13の部分を変更してください。)

2. PostgreSQLにpgroongaを適用

リスクが伴う作業なので、PostgreSQLの内容をすべてバックアップします。
(pg_dumpallしたものをgzip圧縮しmis.gzとして保存します)

sudo -u postgres pg_dumpall | gzip -c > mis.gz

postgresユーザーでpsqlに入ります。${database}はMisskeyで使用しているデータベース名に置き換えます。

sudo -u postgres psql ${database}

${database}=# に入るので、次のコマンドを実行します。

CREATE EXTENSION pgroonga;
\q

3. Misskeyにパッチを適用

最後に、Misskeyに下記のPGroonga対応パッチを適用し、通常通りビルドとマイグレーションを行って起動してください。

パッチ適用はdiffファイルとGitHubブランチのどちらかを頑張って適用してください……。

なお、このパッチではILIKEの代わりに&@~を使用するようにするため、AND/OR検索といったクエリー構文を利用できます。

*復旧方法

理論上の復旧方法を書いておきますが、試していないので責任は負いかねます……。
mis.sqlはかなり大きいと思うので注意してください。gzipからpg_restoreに直接パイプできるかも?

gzip -c -d mis.gz > mis.sql
pg_restore -c mis.sql

コメント
いいね
投げ銭
最新順
人気順
aqz/tamaina
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン