Elastic Workplace Searchの使用状況をKibanaダッシュボードで分析 - パート2
Elastic Workplace Searchの7.10リリースのときには、新しい分析ログ機能の一部をご紹介し、サンプル分析シナリオをいくつか簡単にご説明しました。今回の7.11リリースでは、分析フィールドが導入されました。これは、利便性の高いダッシュボードとビジュアライゼーションによって、クエリとクリックのデータ分析の新たな可能性を開くものです。
分析イベントのログ出力は、可能な限りの柔軟性を備えるよう構成されています。Elasticでは、Workplace Searchの使用状況について把握が必要になりそうな分析の種類のアイデアを用意していますが、ユーザーが好きなようにメトリックを分析できるようにしたいとも考えています。皆さまにはぜひご自身でデータをいろいろと操作してみることをお勧めしますが、この記事では、追加されたデータポイントを使ってできるようになったことについて、いくつか具体的なユースケースや事例をご紹介したいと思います。
新しい機能
7.11リリースでは、次のような、分析のための新しいフィールドが追加されました。
- クエリの絞り込み
- クエリのフィルター
- クエリのハッシュ値
- ドキュメントタイプ(クエリおよびクリック)
- クエリのフィードバックイベント
前回のブログ記事では、Kibana Lensを使用して簡単なビジュアライゼーションを作成する方法についてご説明しました。この記事ではさらに一歩進めて、これらの新しいフィールドをベースにした、高度なビジュアライゼーションの作成について詳しく説明します。
前回の記事でもご説明しましたが、分析イベントの生データは、インデックスパターン(.ent-search-workplace-search-analytics-ecs-ilm-logs-*
)を使用して見つけられます。より高度なクエリでは、Elasticsearch変換インデックスを活用して、複数のフィールドの事前集約を行います。ダッシュボードと以下に挙げるメトリック向けに、クエリごとのセッションレベルで集約する変換(ソースGistはこちらを参照)を作成しました。
- クエリの絞り込みと絞り込み件数
- 使用されたクエリフィルターとフィルター件数
- このクエリセッションの総クリック数
- クエリセッションの開始と終了のタイムスタンプ
- クエリセッションの開始から最初に結果をクリックするまでの秒数
変換を作成して使用する際に考慮の必要なトレードオフ事項があります。スクリプト化されたデータ集約は、Kibanaのビジュアライゼーションと組み合わせることで非常に強力になります。ただし、これは、変換の作成と維持に追加のコンピューティングリソースとストレージソースを割り当てることによって実現します。そのため、Workplace Searchの使用状況について分析するメトリックを定義するときは、データから何を求めるかを把握し、データを調査するためにどの変換をどれだけ使用するかを見極める必要があります。
分析ダッシュボードのビジュアライゼーションを作成する
記録されたフィールドから取得できる新しい分析やメトリックをわかりやすく説明するために、このアップデートで利用可能な新しい分析のほとんどが表示されるKibanaのダッシュボードを作成します。これには次の内容が含まれます。
- 平均クリック位置と平均逆順位:クリックイベントが発生した結果の平均ランクと、それに対する平均逆順位。
- クエリから最初のクリックまでにかかった平均秒数:クエリが発行されてからユーザーが結果をクリックするまでの経過時間。
- 上位のトリガー成功率:トリガーを生成した上位クエリ。クリック数によって定義。
- ドキュメントタイプごとの上位クリック:クリックされた上位のドキュメントタイプ。
- コンテンツソースごとの上位クリック:クリックされたドキュメントが含まれる上位のコンテンツソース。
- コンテンツソースごとの上位のクリックされたドキュメント:コンテンツソースごとに最もクリック数が多かったドキュメント。
- ゼロクリックとなった上位クエリ:結果的にユーザーがどの結果もクリックしなかった、最も一般的なクエリ。これは、ユーザーが検索しているものの、関連する結果が見つからない項目を特定するのに役立ちます。特定したら、クエリ結果を調整して検索を支援したり、追加コンテンツを作成してギャップを解消したりできます。
これらの作成方法については以降で一つずつ説明しますが、こちらのGistをダウンロードしてKibanaにインポートすると、このダッシュボードをすぐに作成できます。
平均クリック位置と平均逆順位
Kibanaで平均クリック位置のメトリックビューを作成するには:
- Lensを使用して、前述の一般的なインデックスパターンと水平棒グラフタイプを選択します。
SearchMetrics.click.result.rank
フィールドに、ビジュアライゼーションのメトリックを設定します。
平均逆順位のメトリックビジュアライゼーションを作成するには:
- 分析インデックスパターンを使用して、新しいLensメトリックビジュアライゼーションを作成します。
SearchMetrics.click.result.reciprocal_rank
フィールドで、ビジュアライゼーションのメトリックを設定します。
クエリから最初のクリックまでにかかった平均秒数
- 上記で定義した変換を使用して、新しいLensメトリックビジュアライゼーションを作成します。
time_to_first_click
フィールドで、ビジュアライゼーションのメトリックを設定します。
上位のトリガー成功率
- Lensを使用して、変換インデックスパターンと水平棒グラフタイプを選択します。
query_refinement_count
フィールドの[between]のフィルターを、「1」からに設定します([to]は空白のままにします)。query_value.keyword
フィールドで、ビジュアライゼーションのフィールドを設定します。
コンテンツソースごとの上位クリック
- Lensを使用して、前述の一般的なインデックスパターンと水平棒グラフタイプを選択します。
SearchMetrics.click.result.content_source
フィールドをグラフ領域にドラッグします。
ドキュメントタイプごとの上位クリック
- Lensを使用して、前述の一般的なインデックスパターンと水平棒グラフタイプを選択します。
SearchMetrics.click.result.document_type
フィールドをグラフ領域にドラッグします。
コンテンツソースごとの上位のクリックされたドキュメント
- Lensを使用して、前述の一般的なインデックスパターンと水平積み上げ棒グラフタイプを選択します。
SearchMetrics.click.result.content_source
フィールドをグラフ領域にドラッグします。SearchMetrics.click.result.id
フィールドをコンテンツソースの上のグラフ領域にドラッグします。
ゼロクリックとなった上位クエリ
上記のダッシュボードにおけるこのビジュアライゼーションでは、カスタムスクリプトのメトリック集約にVegaスクリプトを使用しているため、アナリストは任意の時間間隔でデータを分析できます。このような分析は、現時点では、事前定義された集約タイプで運用されるLensや標準のKibana可視化機能では実行できません。クエリはスクリプトメトリックを使用して、指定された時間範囲における関連クリックのないクエリの頻度を集約します。これにより、上位5つのクエリの件数を容易にグラフ化することができます。上記で示唆したように、ここでVegaビジュアライゼーションタイプを活用するメリットとして、Kibanaのグローバルタイムスタンプの範囲を、結果を絞り込むためのパラメーターとして定義することもできます。
スクリプトそのものは、複雑ではないものの、このブログ記事で取り上げるにはやや分量が多いので、参照用のGistをご用意しました。
その他のメトリックとビジュアライゼーション
より複雑ではあるものの非常に有益な分析向けに、追加の変換を作成できます。または、Kibanaで、ソースデータで作成したインデックスや変換に対してElasticsearch SQLを使用してデータを取得することで、Canvas Workpadを作成できます。上記の「ゼロクリックとなった上位クエリ」のグラフで見たように、ダッシュボードに追加する必要がある場合は、これらの手動クエリもVegaスクリプトに変換できます。
上記以外にも、このアップデートで利用可能になった新しいフィールドを使用する有用なメトリックの例を、いくつかご紹介しましょう。
月ごとのエンゲージメントボリューム
これは、クリック数とクエリ数の比率に基づくメトリックです。検索結果の関連性が高いかどうか、または少なくともユーザーにとって興味深い結果であるかどうかを示します。クエリに対するクリックの比率が高いほど、検索を行ったユーザーにとって結果が興味深かったと考えられます。
このメトリックは、こちらのGistに示すとおり、日付ヒストグラムとバケットスクリプトによって実現しています。このクエリをさらにVegaビジュアライゼーションに取り込むことで、折れ線グラフを作成し、月や週など任意の期間におけるエンゲージメントをプロットできます。
N日のユーザー維持率
新しいログ分析イベントを使用して、週(または日、月)単位でElasticのワークスペースを利用する人数についてのインサイトを取得できます。ユーザー維持率を測定するための基本的な数式は、対象期間終了時のユニークユーザー数÷開始時のユニークユーザー数です。
こちらのGistに示すとおり、日付ヒストグラムを使用して集合関数を動かすことで、これを実行できる集約を作成できます。なお、Vegaを使用してこれをビジュアライゼーションに変換して折れ線グラフをプロットすると、検索インスタンスがどの程度ユーザーを引きつけ、維持しているかを容易に確認できます。
まとめ
Workplace Searchで収集された分析データにより、皆さまやアナリストはWorkplace Searchのインスタンスをユーザーのニーズに合わせて調整するためのインサイトを取得することができます。この記事ではいくつかの役立つユースケースをご紹介しましたが、自社のニーズに何が最適かを把握しているのはアナリスト本人です。皆さまが必要な情報を取得するためのツールを提供できていれば嬉しく思います。
ここでご紹介したインサイトは、Workplace Searchに追加された分析機能のほんの一部であり、紹介しきれなかった機能はまだたくさんあります。ぜひご自身で体験してお試しいただき、Workplace Searchの今後の機能改善に期待することについてフィードバックをお寄せください。
Workplace Searchは、Slack、GitHub、Google Drive、Salesforceなど、組織のすべてのワークプレイスツールの統合検索を実現します。Workplace Searchの主要な機能の多くは無料でご利用いただけます。Elastic CloudでのElastic Workplace Searchの無料トライアルにぜひご登録ください。高速で機能的な全社規模の検索エクスペリエンスがチームにもたらされます。