はじめに
検索システムは情報を「見つける」ためのツールですが、検索ログ自体も貴重な情報源です。 「何が検索されているか」「何が見つからないか」「どの情報がよく閲覧されるか」――これらのデータは、組織の情報ニーズと知識ギャップを映し出す鏡です。
本記事では、Fess の検索ログと OpenSearch Dashboards を組み合わせて、組織のナレッジ活用状況を可視化する分析ダッシュボードを構築します。
対象読者
検索システムの利用状況を定量的に把握したい方
情報活用戦略のためのデータを収集したい方
OpenSearch Dashboards の基本操作を知りたい方
検索データの価値
検索ログから読み取れること
検索ログは、組織の情報ニーズを定量的に把握できる希少なデータです。
| データ | インサイト |
|---|---|
| 検索キーワード | 社員が何を探しているか(情報ニーズ) |
| ゼロヒットクエリ | 組織に不足している情報(知識ギャップ) |
| クリックログ | どの検索結果が役立ったか(コンテンツの価値) |
| 検索頻度の時系列 | 情報ニーズの変化(トレンド) |
| 人気ワード | 組織全体の関心事 |
Fess が収集するデータ
Fess は以下のデータを自動的に収集・蓄積しています。
検索ログ(fess_log.search_log)
管理画面の [システム情報] > [検索ログ] で確認できます。 OpenSearch のインデックス fess_log.search_log に保存されます。
主なフィールド:
| フィールド名 | 型 | 説明 |
|---|---|---|
searchWord | keyword | 検索キーワード |
requestedAt | date | 検索日時 |
hitCount | long | 検索結果件数(0 の場合がゼロヒット) |
queryTime | long | クエリ実行時間(ミリ秒) |
responseTime | long | 合計レスポンス時間(ミリ秒) |
userAgent | keyword | ユーザーエージェント |
clientIp | keyword | クライアント IP アドレス |
accessType | keyword | アクセス種別(web, json, gsa, admin など) |
queryId | keyword | クエリ ID(クリックログとの紐付けに使用) |
クリックログ(fess_log.click_log)
検索結果のリンクがクリックされた記録です。 OpenSearch のインデックス fess_log.click_log に保存されます。
| フィールド名 | 型 | 説明 |
|---|---|---|
url | keyword | クリックされた URL |
queryId | keyword | 検索ログの queryId(どの検索からクリックされたか) |
order | integer | 検索結果内の表示順位 |
requestedAt | date | クリック日時 |
docId | keyword | ドキュメント ID |
人気ワード
検索画面に表示される人気ワードは、検索ログを基に Fess の suggest インデックスに集計されます。 一定の検索ヒット数を超えたクエリが、検索回数に基づいてランキングされます。
OpenSearch Dashboards での可視化
Fess の検索ログは OpenSearch に保存されるため、OpenSearch Dashboards を使って高度な可視化が可能です。
OpenSearch Dashboards のセットアップ
Docker Compose 構成に OpenSearch Dashboards を追加します。
services:
opensearch-dashboards:
image: opensearchproject/opensearch-dashboards:3.6.0
ports:
- "5601:5601"
environment:
OPENSEARCH_HOSTS: '["http://opensearch:9200"]'
DISABLE_SECURITY_DASHBOARDS_PLUGIN: "true"
http://localhost:5601 にアクセスして、Dashboards の UI を利用します。
インデックスパターンの作成
OpenSearch Dashboards で Fess のログデータを可視化するには、まずインデックスパターンを作成します。
Dashboards にアクセスし、左メニューから [Stack Management] > [Index Patterns] を選択
[Create index pattern] をクリック
以下のインデックスパターンを作成
| インデックスパターン | 時刻フィールド | 用途 |
|---|---|---|
fess_log.search_log | requestedAt | 検索ログの分析 |
fess_log.click_log | requestedAt | クリックログの分析 |
ダッシュボードの設計
以下の分析視点でダッシュボードを設計します。 左メニューの [Visualize] から各ビジュアライゼーションを作成し、[Dashboard] にまとめます。
検索利用状況の概要
日別検索回数の推移
検索の利用量がどう変化しているかを把握します。
インデックスパターン:
fess_log.search_logビジュアライゼーション: Line(折れ線グラフ)
X 軸: Date Histogram(フィールド:
requestedAt、間隔: 1d)Y 軸: Count
利用が増加していれば検索システムが定着している証拠であり、減少していれば改善が必要です。
時間帯別検索回数
検索が多い時間帯を把握します。
ビジュアライゼーション: Vertical Bar(棒グラフ)
X 軸: Date Histogram(フィールド:
requestedAt、間隔: 1h)Y 軸: Count
業務開始時や昼食後に検索が多い場合、情報収集が業務の一部として定着していることがわかります。
検索品質の分析
ゼロヒット率の推移
ゼロヒット率は検索品質の重要な指標です。 検索ログの hitCount フィールドが 0 のレコードがゼロヒットクエリに該当します。
インデックスパターン:
fess_log.search_logフィルタ:
hitCount: 0を追加してゼロヒットクエリを抽出ビジュアライゼーション: Line(折れ線グラフ)
X 軸: Date Histogram(フィールド:
requestedAt、間隔: 1d)Y 軸: Count
ゼロヒット率が高い場合、シノニムの追加やクロール範囲の拡大が必要です(第8回参照)。
なお、管理画面の [システム情報] > [検索ログ] でも、ゼロヒットクエリの一覧を確認できます。
ゼロヒットクエリのワードクラウド
ゼロヒットクエリをワードクラウドで表示すると、どのような情報が不足しているかが一目でわかります。
フィルタ:
hitCount: 0ビジュアライゼーション: Tag Cloud
フィールド: Terms Aggregation(フィールド:
searchWord、サイズ: 50)
コンテンツの価値分析
クリック数の多い検索結果
よくクリックされる検索結果は、組織にとって価値の高いコンテンツです。
インデックスパターン:
fess_log.click_logビジュアライゼーション: Data Table
フィールド: Terms Aggregation(フィールド:
url、サイズ: 20、並び順: Count 降順)
これらのコンテンツの更新・メンテナンスを優先しましょう。
クリック位置の分布
検索結果の何番目がクリックされているかの分布を確認します。
インデックスパターン:
fess_log.click_logビジュアライゼーション: Vertical Bar(棒グラフ)
X 軸: Histogram(フィールド:
order、間隔: 1)Y 軸: Count
1〜3位のクリックが多ければ検索品質は良好、10位以降のクリックが多ければランキングの改善が必要です。
情報ニーズの傾向分析
人気キーワードのランキング
組織全体で何に関心があるかを把握します。
インデックスパターン:
fess_log.search_logビジュアライゼーション: Data Table
フィールド: Terms Aggregation(フィールド:
searchWord、サイズ: 20、並び順: Count 降順)
人気キーワードの変化は、組織の課題や関心事の変化を反映します。
分析結果の活用
検索データの分析結果は、以下のような施策に活用できます。
コンテンツ戦略
ゼロヒットクエリ: 不足しているコンテンツを特定し、作成を依頼
人気キーワード: よく検索されるトピックの情報を充実させる
クリック率の低い結果: コンテンツの改善または削除を検討
検索品質の改善
シノニムの追加: ゼロヒットクエリから同義語候補を発見
キーマッチの設定: 人気クエリに対する最適な結果を設定
ブーストの調整: クリック率に基づいてランキングを改善
IT 投資の判断
利用量の増加: サーバーリソースの増強計画
新しい情報ニーズ: 追加のデータソース連携の検討
AI 機能のニーズ: AI 検索モードの導入判断(第19回参照)
定期レポートの作成
分析結果を定期的にレポートとしてまとめ、関係者に共有しましょう。
月次レポートの項目例
検索利用状況のサマリ(総検索回数、前月比)
ゼロヒット率の推移と改善状況
人気キーワード Top 10
新しく発見された知識ギャップ
実施した改善策とその効果
次月の改善計画
まとめ
本記事では、検索ログを活用した組織のナレッジ可視化について解説しました。
検索ログから得られるインサイト(情報ニーズ、知識ギャップ、コンテンツ価値)
OpenSearch Dashboards による可視化ダッシュボードの構築
分析結果のコンテンツ戦略・検索品質改善・IT 投資への活用
定期レポートによる継続的な改善
検索データは「組織の知識地図」を描くための貴重な資産です。 AI・次世代検索編はここまでです。次回は最終回として、シリーズ全体の総括を行います。