なんどか言及しているけどこのサイトの検索ページには頭を悩ませている。直近だとこの記事で言及した。いろいろ考えた挙句、やはり自前でAPIサーバを作ろうという気持ちになったのでやり始めた。自分に発破をかけるためにも雑に書きのこしておく。

Googleサイト内検索を使いたくない。しかしそうなるとどうやって検索を実現するか…。過去にJSONに全データを突っ込んで検索できるようにしていたことがあるけど、このペースで記事を書き続けるとJSONが超絶肥大化するので限界がきそう。Algoriaはどこか個人のブログで検証している記事をだいぶ昔によんだけど、APIのリミットに掛かる可能性があるので却下。OSSの全文検索サーバを立てたこともあるけど、上手くクロールされず&サーバのリソース不足で断念したこともある。

そもそもこのサイトの記事で検索にインデックスしてもらう必要がないんじゃないの??みたいなのが増えている。完全個人の日記とか。そういうのはもうインデックスされないようにしていく方向にしたい。しかし、インデックスされないようにしてしまうと、Googleサイト内検索にも表示されなくなるはず。検索にインデックスされたくないけど、サイト内検索では引っかかるようにしたい。これすなわちもう自前でやるしかない。という感じ。

後は、つぶやきフォトギャラリーを動かしているインスタンスがリソースあまりまくりでお金が勿体ないのでもっと何か動かしたいというのがある。また、直近仕事で使用しているフレームワークなどをここで使って試しておきたいというのもある。

最近GitHubに草が生えていないので、草生やすのも含めてGitHubに上げることにする。

lv-fox

名前は迷ったというか、全く良い案が浮かばなかった。浮かばないが開発コードみたいなのは付けたい。直近読んだ女子攻兵で主人公のタキガワが搭乗していた機体のラヴ・フォックスの響きが良かったので、そちらから拝借することにした。流石にそのままんまはいかがなものかと思ったのでlv-foxにした。(ただ、どうもラヴフォックスで検索した感じ、おおもとは歌手っぽい)

技術的にはScala + PlayFrameworkで行くことにした。理由は仕事でPlayFramework触っているから。実は以前にも実装しかかったことがあって、その時はTypeScript + Nest.jsという組み合わせで始めかかったものの、軽くローカルで動かしただけでそれ以降手が進まなかった。今回仕事でPlayを使うことになったというのが作り始める後押しとなったといえる。正直なところ完成までの早さをもとめるなら以前作ったつぶやきAPIのソースコードをコピーしてきたほうが圧倒的に早く仕上がる…。ただ、そうしてしまうと技術的に進歩がないのでPlayでやろうという気持ち。今日はモジュールとかローダーの辺りでいろいろ詰まって終わった。

例のごとくすぐ仕上げないと途中で飽きるので、手を抜きまくることにした。テーブルも1テーブルで正規化もしない予定。データを更新するときの認証エンドポイントもJWTとかそういう大層なのは使わない。環境変数に設定したトークンと一致するかとかそういう雑な感じにしようと思っている。稼働後にどうしようもなく行き詰ったらDBごと潰して作り直せばいい。別にお客様がいるわけじゃない。