Misskey
MisskeyでMeilisearchを導入するやり方
Meilisearchをインストール
sudo apt update
sudo apt install curl -y
curl -L https://install.meilisearch.com | sh
chmod +x meilisearch
sudo mv ./meilisearch /usr/local/bin/
sudo useradd -d /var/lib/meilisearch -b /bin/false -m -r meilisearch
curl https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml > ./meilisearch.toml
nano ./meilisearch.toml
ってやって適切に変える
具体的に言うとenv を "production" に変えたり log_level を変えたり コメントアウトされてる master_keyを変えたり
master_keyは16bytes以上じゃないといけないらしい
書き換え終わったら
sudo cp ./meilisearch.toml /etc/meilisearch.toml
mkdir /var/lib/meilisearch/data /var/lib/meilisearch/dumps /var/lib/meilisearch/snapshots
chown -R meilisearch:meilisearch /var/lib/meilisearch
chmod 750 /var/lib/meilisearch
sudo nano /etc/systemd/system/meilisearch.service
ここまでやったら下記を全部コピペして保存する
[Unit]
Description=Meilisearch
After=systemd-user-sessions.service
[Service]
Type=simple
WorkingDirectory=/var/lib/meilisearch
ExecStart=/usr/local/bin/meilisearch --config-file-path /etc/meilisearch.toml
User=meilisearch
Group=meilisearch
[Install]
WantedBy=multi-user.target
終わったら下記のコマンドをしてmeilisearchのセットアップはおしまい
sudo systemctl daemon-reload
sudo systemctl enable --now meilisearch
Misskeyのconfigを書く
sudo su - misskey
nano misskey/.config/default.yml
ってしてファイルの最後に下記をコピーペースト
apiKeyは書換えてね
meilisearch:
host: localhost
port: 7700
apiKey: ''
index: 'misskey'
これでたぶんmeilisearchが使えるようになる
やったね
おまけ
過去のノートのindex的なのを張る方法
このコマンドを実行してください。最初のDB_NAMEと最後らへんのAPIKEYは変えてください。
(LIMITを10000にしてるのでここは自由に変えてください)
psql -d DB_NAME -c "SELECT json_agg(row_to_json(t)) ::text FROM (SELECT id, \"createdAt\", \"userId\", \"userHost\", \"channelId\",cw,text FROM note WHERE visibility IN ('home', 'public')LIMIT 10000) t" > notes_tmp
sed -i '1d;2d;x;$d;' notes_tmp
jq 'map(.createdAt |= (strptime("%Y-%m-%dT%H:%M:%S%Z") | mktime | . * 1000 + (. / 1000000 | floor)))' notes_tmp > notes.json
curl -X POST 'http://localhost:7700/indexes/misskey_notes/documents' --data @notes.json -H 'Content-Type: application/json' -H "Authorization: Bearer APIKEY"