【DAY25】検索機能の改善と、ローカル環境だけで完結しない理由

に公開

【DAY25】検索機能の改善と、ローカル環境だけで完結しない理由

こんにちは、Keisukeです。
今日は、最近取り組んでいた検索機能の改善について、技術的な観点から振り返ります。

以前から作っていた「Firebase連携の生活支援Webアプリ」で、検索フォームの機能を強化したいと思っていました。
というのも、単純な「キーワードを含むデータを一覧で表示する」だけでは、情報量が増えるにつれて目的のデータに辿り着きにくくなると感じたからです。

そこで今回、新たに以下のような改良を加えました。

  • 入力キーワードに対するヒット件数の表示
  • 全データの中で、そのキーワードがどのくらい使われているかのランキング表示(TOP3)
  • 入力された検索ワードが存在しない場合には、「該当なし」とユーザーに明示

この改善により、ユーザーが「どのワードがよく使われているか」や「自分の探している情報が本当に存在しているか」が一目でわかるようになりました。
たったこれだけでも、UXは大きく変わります。


ローカル環境だけでは限界があると痛感

この作業を進める中で、特に印象的だったのは、「ローカル(JavaScriptのみ)で完結しようとすると、データの整合性や集計の再現性が保てない」という事実です。

JavaScriptだけでヒット件数やランキングを出そうとすると、毎回すべてのデータを読み込み直して処理する必要があり、パフォーマンスが落ちます。
一方で、FirebaseなどのリアルタイムDBを活用すれば、データの更新・取得・集計が効率的に行え、他ユーザーとも情報共有が可能になります。

「複数人が使うこと」「データが日々変わっていくこと」を前提に設計するなら、やはりクラウドDB連携が必要不可欠なのだと再認識しました。


技術は「小さな不満」を解決する

今回の検索機能の強化は、見た目には地味な改良かもしれません。
でも実際に使ってみると「こんな細かいフィードバックがあると嬉しい」と自分でも思えたし、
「なんとなく便利」から「明確に使いやすい」へ一歩進めたと感じています。

技術って、こういう「ちょっとした不便さ」を丁寧に拾っていくことで、ぐっと人の役に立てるんだと思います。
次は、このランキング表示に「グラフ可視化」も取り入れてみようかと模索中です。


ということで、DAY25は「検索機能の技術的改善」について書いてみました。
自分が便利に思う機能を、他の人にも使ってもらえるよう、引き続き改善していきます!


Discussion