サンプルサイトで検索機能の追加、性能調査を実施してみる
今度は架空の服のオンラインショップ「Gallivant」を例に、App Search活用について解説する。アパレルのECサイトなので、Webサイトの訪問客はアイテムを選び、サイズを選び、チェックアウトして購入するのが基本的な流れとなる。マーケターやエンジニアなど多くの人がこのサイトに関わり、ユーザーエクスペリエンスを改良していく。
検索機能が全文検索のみだとフリーワード検索しかできないが、App Searchを活用するとフリーワード検索でオートコンプリートやサジェストができるほか、ソート、各種要素で絞り込み、集計、ハイライトなどをあまりコードを書かずに実現できる。こうした便利な機能があるとサイトの利便性は高まり魅力的になる。
今度は表からバックヤード側、管理画面に移ろう。顧客がどのような操作や検索をしたのかが詳細に分かる。例えば顧客の検索ワードに「デニム」や「ブラウス」があり、それぞれどれくらいアイテムがクリックされたかが集計されている。そのなかで「ジャンパー」は検索されてもクリックが「0」となっていることが判明した。そこで他のアイテムとキュレーションするなど工夫することができる。
次はシノニム(同義語)のチューニング。「シャツ」に対して「ブラウス」や「ガウン」などと登録しておくと、顧客が「ガウン」と検索しても「シャツ」に該当するアイテムがヒットするようになる。なかなか検索されないアイテムには同義語を登録しておくといいだろう。
Observabilityの機能も簡単に見ていこう。昨今ではマイクロサービス化が進み、問題発生時の原因究明が難しくなってきている。冒頭に述べたようにWebサイトの訪問者は数秒でも待たされると離脱してしまうので、サイトの稼働状況を監視して問題を早めに検知して改善を加えることが重要になる。売上に貢献するだけではなく、開発者や運用担当者の生産性を高めることにも寄与する。
サンプルのサイトでは、クラウドネイティブのテクノロジーでサイトを構築し、さまざまなプログラミング言語が使われ、10層のマイクロサービスアーキテクチャとなっている。メモリ内データキャッシュにRedisを使用し、GCPのGKEで実行していたとする。サイトが高度になるほどボトルネックを探すのが難しくなる。
例えばサイトの顧客がアイテムをカートに入れる時に数秒待たされたとする。限度を超えると機会損失につながりかねないので、トラブルシューティングを行う。Observabilityを使うと、サービスがどのように接続しているか「Service Map」が瞬時に表示される。今回はカートにアイテムを入れる部分で異常が生じているので、そこに該当する部分、例えば「Add cart」のトランザクションなどをチェックする。画面を深掘りしていくとどの処理でどれだけ時間がかかっているかがグラフ表示されており、原因究明に役立つ。
補足としてElasticではGCP、AWS、Azureとネイティブデータ統合を徐々に進めている。今後ますますObservabilityやEnterprise Searchで便利にデータを取り込むことが期待できそうだ。例えばGCPのCloud FunctionやFirestoreを使うアプリケーションを構築したとする。ここにElasticの機能を連携させて使うことも可能となる。アプリの開発生産性が高まりそうだ。
最後に鈴木氏は「カスタマーエクスペリエンス向上のために、ぜひElasticsearchをお試しください。資料の末尾に参考資料を添付していますので、どうぞご覧ください」と述べて締めくくった。