プログラミングなんてわからないんですけど〜

元プログラマによるプライベートでのプログラミング日記。1/3のつもりだけどソフト関連はここがメイン

fediversesearchのDBにデータがINSERTできなくなっていた

新しいデータのクロールをいい加減にしていたので気づかなかったのですが、セカンダリDBを昇格させたあとからINSERTに失敗していたようです。全文検索はできていたので問題が起きているとは気づかなかった。

なぜ気づいたかというと、つい先日フォロアーが新しいサーバーを開きましてそこから私のアカウントにフォローしてくれたんですね。なので、そのサーバーが /api/v1/instance/peers に追加されたと。
そこまではいいんですが、実際にpeersを取ってきてDBにINSERTしているはずなのにデータが出てこない。よくわからんから、RailsのControllerをWebAPI経由で呼び出して直接INSERTを実行してみたんですわ。そうしたら「pgroonga: object isn't found」のエラーが出たと。
ググったんですがよくわかりません。ひとまずヒントになりそうな記事が1つありました。

gitter.im

どうやらINDEXを再構成する必要があるのではないかと。これはセカンダリDBを昇格したときに起きそうだというのが他の記事とか見ていてそう思いました。なので、DBのテーブルのうち、実際にINSERTしているテーブルのINDEXのみREINDEXしてみました。

qiita.com

hacknote.jp

qiita.com

psqlの操作方法は覚えていないので、ググりながらなんとかREINDEXしました。そうしたらINSERTできたんです!。というわけで、DBに登録しているレコードのURIすべて(16000件余り)にたいしてpeersを取りに行って未登録のサーバーを突っ込んでみました。たぶん半日はかかっています。それが終わったら、追加分をCrawlしました。

f:id:kaias1jp:20210223133129p:plain

追加のCrawl前はこんな感じ。で、Crawlしたらこうなりました。

f:id:kaias1jp:20210223145749p:plain

残りはリダイレクト対応ぐらいかな?