Amazon Web Services ブログ

Amazon Kendra の新しい Web Crawler を使用して、Web クロールしたコンテンツを索引付けする

Amazon Kendra は、機械学習(ML)を活用した高精度で使いやすいインテリジェント検索サービスです。Amazon Kendra は、さまざまなデータソースコネクタを提供し、どんな場所に置かれているコンテンツでも取り込みと索引付けのプロセスを簡単にします。

組織内の貴重なデータは、構造化されたリポジトリと非構造化リポジトリの両方に保存されています。エンタープライズ検索ソリューションは、さまざまなデータソースからコンテンツを索引付けするプロセスを簡素化し、完全に管理された体験を提供する必要があります。

このような非構造化データリポジトリの一例が、内部および外部ウェブサイトです。ニュースフィードを作成したり、言語の使用を分析したり、ウェブサイトのデータに基づいて質問に答えるボットを作成するために、サイトをクロールする必要がある場合があります。

新しい Amazon Kendra Web Crawler を使用すると、内部および外部ウェブサイトに保存されているコンテンツから回答を検索したり、チャットボットを作成することができます。この投稿では、ウェブサイトに保存されている情報を索引付けし、Amazon Kendra のインテリジェント検索を使用して、内部および外部ウェブサイトに保存されているコンテンツから回答を検索する方法を紹介します。さらに、機械学習で強化されたインテリジェント検索では、キーワード検索が効果的でない自然言語のナラティブを含む非構造化ドキュメントから質問に対する正確な回答を得ることができます。

Web Crawler は、以下の新機能を提供します:

  • 基本的な NTLM / Kerberos 、フォーム、および SAML 認証のサポート
  • 100 個のシード URL を指定し、接続構成を Amazon Simple Storage Service(Amazon S3)に保存する機能
  • プロキシ資格情報を提供する機能を持つウェブおよびインターネットプロキシのサポート
  • JavaScript を含むウェブサイトなどの動的コンテンツのクロールをサポート
  • フィールドマッピングと正規表現フィルタリング機能

ソリューションの概要

Amazon Kendra を利用すると、複数のデータソースを設定し、ドキュメントリポジトリ全体での検索を一元化することができます。私たちのソリューションでは、 Amazon Kendra Web Crawler を使用してクロールされたウェブサイトをインデックス化する方法を示します。このソリューションは以下のステップで構成されています:

  1. ウェブサイトの認証メカニズムを選択し(必要な場合)、AWS Secrets Manager に詳細を保存する。
  2. Amazon Kendra インデックスを作成する。
  3. Amazon Kendra コンソールを介して Web Crawler データソース V2 を作成する。
  4. ソリューションをテストするためにサンプルクエリを実行する。

前提条件

Amazon Kendra Web Crawler を試すためには、以下が必要です:

認証の詳細を集める

保護されている安全なウェブサイトの場合、以下の認証タイプと標準がサポートされています:

  • Basic 認証
  • NTLM / Kerberos
  • フォーム認証
  • SAML

データソースを設定するときに、認証情報が必要です。 基本または NTLM 認証の場合、Secrets Manager のシークレット、ユーザー名、パスワードを提供する必要があります。

フォームと SAML 認証には、以下のスクリーンショットに示されているように、User name button や Xpath のような一部のフィールドはオプションであり、クロールするサイトが User name の入力後にボタンを使用しているかどうかによります。また、User name と Password フィールドおよび送信ボタンの Xpath をどのように決定するかを知っている必要があります。

Amazon Kendra インデックスを作成する

Amazon Kendra インデックスを作成するには、以下の手順を完了します:

  1. Amazon Kendraコンソールで、「Create an Index」を選択します。
  2. 「Index name」に、インデックスの名前を入力します(例:Web Crawler)。
  3. 任意の説明を入力します。
  4. 「Role name」に、IAMロール名を入力します。
  5. 任意の暗号化設定とタグを設定します。
  6. 「Next」を選択します。
  7. 「Configure user access control」セクションで、設定をデフォルトのままにして「Next」を選択します。
  8. 「Provisioning editions」で、Developer edition を選択し、「Next」を選択します。
  9. レビューページで、「Create」を選択します。
    これによりIAMロールが作成および伝播され、その後 Amazon Kendra インデックスが作成されます。これには最大30分かかることがあります。

Amazon Kendra Web Crawler データソースを作成する

データソースを作成するために、以下の手順を完了します:

  1. Amazon Kendra コンソールで、ナビゲーションペインの「Data sources」を選択します。
  2. WebCrawler コネクタ V2.0 のタイルを探し、「Add connector」を選択します。
  3. 「Data source name」に名前を入力します(例:crawl-fda)。
  4.   任意の説明を入力します。
  5. 「Next」を選択します。
  6. 「Source」セクションで、「Source URL」を選択し、URLを入力します。この投稿では、例として https://www.fda.gov/ を使用します。
  7. 「Authentication」セクションで、クロールしたいサイトに基づいて適切な認証を選択します。この投稿では、公開サイトで認証が不要なため「No authentication」を選択します。
  8. 「Web proxy」セクションでは、Secrets Manager のシークレットを指定できます(必要に応じて )。
    1. 「Create and Add New Secret」を選択します。
    2. 以前に収集した認証の詳細を入力します。
    3. 「Save」を選択します。
  9. 「IAM role」セクションで、「Create a new role」を選択し、名前を入力します(例:AmazonKendra-Web Crawler-datasource-role)。
  10. 「Next」を選択します。
  11. 「Sync scope」セクションで、クロールするサイトに基づいて同期設定を構成します。この投稿では、すべてのデフォルト設定をそのまま使用します。
  12. 「Sync mode」で、インデックスをどのように更新するかを選択します。この投稿では、「Full sync」を選択します。
  13. 「Sync run schedule」で、「Run on demand」を選択します。
  14. 「Next」を選択します。
  15. 必要に応じて、フィールドマッピングを設定できます。この記事ではデフォルトのままにします。
    フィールドのマッピングは、フィールド名を組織の語彙に合ったユーザーフレンドリーな値に置き換える設定です。
  16. 「Next」を選択します。
  17. 「Add data source」を選択します。
  18. データソースの同期を行うには、データソースの詳細ページで「Sync now」を選択します。
  19. 同期が完了するのを待ちます。

認証付きウェブサイトの例

認証が必要なサイトをクロールしたい場合は、前述の手順の「Authentication」セクションで認証の詳細を指定する必要があります。フォーム認証を選択した場合の例は以下の通りです。

  1. 「Source」セクションで、「Source URL」を選択し、URLを入力します。この例では、https://accounts.autodesk.com を使用します。
  2. 「Authentication」セクションで、「Form authentication」を選択します。
  3. 「Web proxy」セクションで、Secrets Manager のシークレットを指定します。これは、「No authentication」以外のオプションに必要です。
    1. 「Create and Add New Secret」を選択します。
    2. 以前に収集した認証の詳細を入力します。
    3. 「Save」を選択します。

ソリューションをテストする

サイトからのコンテンツを Amazon Kendra インデックスに取り込んだので、いくつかのクエリをテストできます。

  1. あなたのインデックスに移動し、「Search indexed content」を選択します。
  2. サンプル検索クエリを入力し、検索結果をテストします(クエリは、クロールしたサイトのコンテンツと入力したクエリに基づいて異なります)。

おめでとうございます! Amazon Kendra を使用して、クロールしたサイトのインデックス化されたコンテンツに基づいて回答と洞察を得ることに成功しました。

クリーンアップ

今後のコストを発生させないように、このソリューションの一環として作成したリソースをクリーンアップしてください。このソリューションをテストするために新しい Amazon Kendra インデックスを作成した場合は、それを削除してください。 Amazon Kendra Web Crawler V2 を使用して新しいデータソースのみを追加した場合は、そのデータソースを削除してください。

結論

新しい Amazon Kendra Web Crawler V2 を使用することで、組織は公開サイトまたは認証が必要なサイトをクロールし、Amazon Kendraによるインテリジェントな検索のために使用することができます。

これらの可能性やその他の詳細については、Amazon Kendra 開発者ガイドを参照してください。データの取り込み時にメタデータとコンテンツを作成、変更、削除する方法の詳細については、「取り込み中にドキュメントを充実させる」および「コンテンツとメタデータを強化して、Amazon Kendra のカスタムドキュメント強化で検索体験を向上させる」を参照してください。

翻訳はソリューションアーキテクトの西田 光彦が担当しました。原文はこちらです。

著者について

Jiten Dedhia は、ソフトウェア業界で20年以上の経験を持つシニアソリューションアーキテクトです。彼はグローバルなファイナンスサービスのクライアントと協力して、AWS が提供するサービスを利用して最新化するためのアドバイスを提供してきました。

Gunwant Walbe は、アマゾンウェブサービスのソフトウェア開発エンジニアです。彼は熱心な学習者であり、新しいテクノロジーの採用に熱心です。彼は複雑なビジネスアプリケーションを開発しており、主な言語は Java です。