Amazon Kendra で構築するエンタープライズ検索 - 自然言語クエリと FAQ 自動抽出

社内ドキュメントを自然言語で検索できるエンタープライズ検索基盤を構築する。データソースコネクタの設定と検索精度のチューニング、RAG 統合を紹介します。

Kendra の概要

Kendra は ML を活用したエンタープライズ検索サービスです。従来のキーワード検索とは異なり、自然言語で「有給休暇の申請方法は?」と質問すると、社内規程ドキュメントから該当箇所を抽出して直接回答します。検索結果はドキュメントの関連箇所をハイライト表示し、40 以上のデータソースコネクタで社内システムと接続し、14 言語の自然言語クエリに対応します。RAG のリトリーバーとしても活用できます。内部的には BERT 系のトランスフォーマーモデルを使い、クエリとドキュメントのセマンティックマッチングを行うため、表記揺れや同義語を含む検索にもキーワード一致に頼らず対応します。

データソースと精度チューニング

データソースコネクタで S3、SharePoint、Confluence、ServiceNow などの社内システムと接続し、定期的にクロール・インデックス化します。ACL 対応のコネクタでは、ユーザーの閲覧権限に基づいて検索結果がフィルタリングされます。検索精度のチューニングでは、カスタム同義語辞書の登録、重要度ブースト (特定フィールドの重み付け)、ユーザーフィードバックの活用が有効です。同義語辞書は一方向 (例: 「有休」→「有給休暇」) と双方向の両方を定義でき、業界用語や社内略語のカバーに役立ちます。フィールドブーストではタイトルや FAQ 質問文に 10 倍のスコアを付与することで、ノイズの多い本文検索結果よりも的確な項目を上位に配置できます。

RAG と生成 AI 統合

Kendra は RAG (Retrieval-Augmented Generation) のリトリーバーとして、生成 AI アプリケーションに高精度な検索結果を提供します。Amazon Bedrock の基盤モデルと Kendra を組み合わせ、社内ドキュメントに基づく正確な回答を生成するチャットボットを構築できます。Kendra の Retrieve API で関連ドキュメントの抜粋を取得し、プロンプトのコンテキストとして基盤モデルに渡します。ACL ベースのアクセス制御により、ユーザーの権限に応じた検索結果のみが返されるため、機密情報の漏洩を防止します。カスタムドキュメントエンリッチメントで、インデックス登録前に Lambda でメタデータの追加やテキストの前処理を実行できます。 Kendra のモデル設計を理解するうえで関連書籍 (Amazon)が参考になります。

Amazon Q Business との比較と使い分け

2024 年に GA となった Amazon Q Business は、Kendra のインデックス技術を内包しつつ生成 AI の回答生成とプラグイン連携を統合したフルマネージドサービスです。Q Business は「チャットインターフェースで社内情報に回答する」体験をワンストップで提供するため、検索 UI をゼロから設計する必要がありません。一方 Kendra は Retrieve API や Query API を直接呼び出し、検索結果のランキングロジックやプレゼンテーション層を自社アプリケーションに組み込む柔軟性に優れます。既存のカスタム UI やポータルに検索エンジンを埋め込みたい場合、または LLM を自前で選定して RAG パイプラインを構築したい場合は Kendra が適しています。「会議予約」「チケット作成」などのアクションまで統合したい場合は Q Business のプラグイン機構が有利です。両サービスは排他的ではなく、Q Business のデータソースとして Kendra インデックスを指定する構成も可能です。

設計のベストプラクティスと落とし穴

インデックス設計では、1 ドキュメントを適切なチャンクサイズに分割することが検索精度を大きく左右します。Kendra はドキュメントあたり最大 5 MB のテキストを処理しますが、長大な PDF をそのまま取り込むと回答の焦点がぼやけます。事前に論理セクション単位で分割し、各チャンクにメタデータ (部署、文書種別、公開日) を付与すると、ファセット検索やフィルタが活用でき精度が上がります。よくある落とし穴は同期スケジュールの設定ミスです。コネクタの同期を 1 時間ごとに設定すると、変更がないドキュメントにも再インデックスが走り、クエリキャパシティユニット (QCU) を消費してコストが膨張します。変更検出が有効なコネクタでは差分同期を利用し、S3 コネクタの場合は EventBridge 経由でオブジェクト作成イベントをトリガーにリアルタイム同期する構成が費用対効果に優れます。FAQ データソースは CSV または JSON で Q&A ペアを登録でき、定型質問への回答を最上位に表示させるため、サポートデスクの負荷削減に直結します。

Kendra の料金と最適化

Kendra の料金はインデックスのエディション (Developer または Enterprise) と、コネクタの同期頻度、ドキュメント数で決まります。Developer エディションは月額約 810 ドルで、最大 10,000 ドキュメントと 4,000 クエリ/日に対応します。Enterprise エディションは月額約 1,008 ドルで、最大 100,000 ドキュメントと 8,000 クエリ/日です。追加のドキュメントストレージとクエリキャパシティユニットで拡張できます。コネクタの同期スケジュールをデータ更新頻度に合わせて最適化し、不要な再インデックスを避けます。FAQ データソースを活用して、よくある質問への回答を直接返すことで、検索精度とユーザー体験を向上させます。Developer エディションは HA 構成を持たないため本番ワークロードには Enterprise を選択し、PoC フェーズのみ Developer で検証するのが実務上の定石です。

まとめ

Kendra は ML ベースのエンタープライズ検索サービスで、自然言語クエリによる質問応答と RAG のリトリーバーとしての活用を提供します。40 以上のデータソースコネクタで社内システムと接続し、ACL ベースのアクセス制御でユーザー権限に応じた検索結果を返します。カスタムドキュメントエンリッチメントと FAQ データソースで検索精度を向上させます。Q Business との住み分けを理解し、検索 UI のカスタマイズ性が必要な場面や独自の RAG パイプライン構築には Kendra を選択してください。