翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Kendra セルフマネージド向けのインテリジェント・ランキング OpenSearch
Amazon Kendraのセマンティック検索機能を活用するとOpenSearch
例えば、「メインキーノートアドレス」というクエリを考えてみましょう。「住所」には複数の意味があるため、 Amazon Kendra クエリの背後にある意味を推測して、意図した意味に沿った関連情報を返すことができます。このコンテキストでは、これは会議の基調講演です。単純な検索サービスでは、その意図が考慮されず、例えばメインストリートの住所の結果が返される可能性があります。
OpenSearch 用のインテリジェント・ランキング・プラグインは OpenSearch (セルフマネージド) バージョン 2.4.0 以降で使用できます。クイックスタート Bash スクリプトを使用してプラグインをインストールし、Intelligent Ranking プラグインが含まれた新しい Docker イメージを構築できます。 OpenSearch 「インテリジェント検索プラグインの設定」を参照してください - これはすぐに使い始めるためのセットアップの例です。
インテリジェント検索プラグインの仕組み
OpenSearch (セルフマネージド) 用のインテリジェント・ランキング・プラグインの全体的なプロセスは以下の通りです。
-
OpenSearch ユーザーはクエリーを発行し、 OpenSearch クエリーレスポンスまたはクエリーに関連するドキュメントのリストを提供します。
-
インテリジェントランキングプラグインはクエリレスポンスを受け取り、ドキュメントから情報を抽出します。
-
インテリジェント・ランキングプラグインは、 Amazon Kendra インテリジェント・ランキングのRescore APIを呼び出します。
-
Rescore
API はドキュメントから抽出された情報を取得し、検索結果をセマンティックに再度ランク付けします。 -
Rescore
API は再ランク付けされた検索結果をプラグインに送り返します。プラグインは、 OpenSearch 新しいセマンティックランキングを反映するように検索レスポンス内の検索結果を並べ替えます。
インテリジェントランキングプラグインは、「本文」と「タイトル」フィールドを使用して結果を再度ランク付けします。これらのプラグインフィールドは、 OpenSearch ドキュメントの本文とタイトルの定義に最も適合するインデックス内のフィールドにマップできます。例えば、索引に「chapter_heading」や「chapter_contents」のようなフィールドを含む本の章が含まれている場合、前者を「タイトル」に、後者を「本文」にマッピングすると、最良の結果が得られます。
インテリジェント検索プラグインの設定
Intelligent Ranking プラグインを使って素早く設定 OpenSearch (自己管理) する方法を以下に概説します。
インテリジェント・ランキングプラグイン OpenSearch (クイックセットアップ) を使ったセットアップ (セルフマネージド)
既に Docker イメージを使用している場合はopensearch:2.4.0
、この Dockerfile を使用して、インテリジェントランキングプラグインで OpenSearch 2.4.0 の新しいイメージを構築できます。新しいイメージ用のコンテナを docker-compose.yml ファイルまたは opensearch.yml ファイルに含めます。また、リスコア実行プランの作成時に生成されたリスコア実行プラン ID を、リージョンとエンドポイントの情報とともに含めます。リスコア実行プランの作成については、ステップ 2 を参照してください。
2.4.0 より古いバージョンの opensearch
Docker イメージを以前にダウンロードしていた場合は、Docker opensearch:2.4.0
イメージ以降を使用し、インテリジェントランキングプラグインが含まれた新しいイメージを構築する必要があります。
-
オペレーティングシステム用の Docker デスクトップ
をダウンロードしてインストールします。Docker デスクトップには Docker Compose と Docker Engine が含まれています。お使いのコンピュータが Docker インストールの詳細に記載されているシステム要件を満たしているかどうかを確認することをお勧めします。 Docker デスクトップの設定でメモリ使用量の要件を増やすこともできます。Docker サービスの無料使用制限以外の Docker の使用要件については、お客様の責任となります。「Docker サブスクリプション
」を参照してください。 Docker デスクトップのステータスが「実行中」であることを確認します。
-
Amazon Kendra インテリジェント・ランキングと必要なキャパシティをプロビジョニングします。 Amazon Kendra インテリジェントランキングをプロビジョニングすると、設定したキャパシティーユニットに基づいて時間単位で課金されます。無料利用枠と料金表情報
をご覧ください。 CreateRescoreExecutionPlanAPI を使用してをプロビジョニングします
Rescore API
。単一ユニットのデフォルトよりも多くのキャパシティーユニットが必要ない場合は、ユニットを追加せず、再スコア実行プランの名前だけを指定してください。UpdateRescoreExecutionPlanAPI を使用してキャパシティ要件を更新することもできます。詳細については、「検索サービスの結果をセマンティックにランク付けする」を参照してください。オプションで、ステップ 3 に進んで、クイックスタート Bash スクリプトを実行するときのデフォルトの再スコア実行プランを作成できます。
ステップ 4 では、レスポンスに含まれる再スコア実行プラン ID をメモしておきます。
-
OpenSearchメインブランチのドロップダウンからバージョンブランチを選択して、 GitHub ご使用のバージョンのクイックスタート Bash スクリプトをダウンロードします
。 このスクリプトは、 GitHub スクリプトのリポジトリで選択したバージョンの Docker OpenSearch OpenSearch イメージとダッシュボードを使用します。Intelligent Ranking プラグインの zip ファイルをダウンロードし、 OpenSearch そのプラグインを含む新しい Docker
Dockerfile
イメージを構築するためのファイルを生成します。また、 OpenSearch インテリジェントランキングプラグインとダッシュボード用のコンテナを含む docker-compose.yml ファイルも作成します。 OpenSearch このスクリプトは、スコア実行プラン ID、リージョン情報、およびエンドポイント (リージョンを使用) を docker-compose.yml ファイルに追加します。その後、スクリプトが実行され、docker-compose up
インテリジェント・ランキングとダッシュボードを含むコンテナーが起動します。 OpenSearch OpenSearch コンテナを削除せずに停止するには、docker-compose stop
を実行します。コンテナを削除するには、docker-compose down
を実行します。 -
ターミナルを開き、Bash スクリプトのディレクトリで、次のコマンドを実行します。
bash search_processing_kendra_quickstart.sh -p <
execution-plan-id
> -r <region
>このコマンドを実行するときは、 Amazon Kendra Intelligent Ranking をプロビジョニングしたときにステップ 2 でメモした再スコア実行プラン ID を、地域情報とともに提供します。オプションで、代わりに
--create-execution-plan
オプションを使用して Amazon Kendra インテリジェントランキングをプロビジョニングすることもできます。これにより、デフォルトの名前とデフォルトのキャパシティーで再スコア実行プランが作成されます。デフォルトのエフェメラルコンテナが削除されてもインデックスが失われないようにするには、
--volume-name
オプションを使用してデータボリューム名を指定して、実行後もインデックスを保持できます。以前にインデックスを作成している場合は、docker-compose.yml ファイルまたは opensearch.yml ファイルでボリュームを指定できます。ボリュームをそのまま残すには、docker-compose down -v
を実行しないでください。クイックスタート Bash スクリプトは、Intelligent Ranking AWS OpenSearch に接続するようにキーストア内の認証情報を設定します。 Amazon Kendra AWS 認証情報をスクリプトに提供するには、
--profile
オプションを使用してプロファイルを指定します。 AWS--profile
オプションが指定されていない場合、クイックスタート Bash AWS スクリプトは認証情報 (アクセス/シークレットキー、オプションのセッショントークン) を環境変数から読み取り、次にデフォルトプロファイルから読み取ろうとします。 AWS--profile
オプションが指定されておらず、認証情報も見つからない場合、スクリプトは認証情報をキーストアに渡しません。 OpenSearch OpenSearch キーストアに認証情報が指定されていない場合でも、プラグインは Default Credential Provider Chain 内の認証情報 ( Amazon ECS メタデータサービスを通じて配信されるコンテナ認証情報やインスタンスプロファイル認証情報など) をチェックします Amazon EC2 。Intelligent Ranking IAM Amazon Kendra を起動するのに必要な権限を持つロールを作成したことを確認してください。以下は、特定の再スコア実行プランに
Rescore
API IAM を使用する権限を付与するポリシーの例です。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kendra-ranking:Rescore", "Resource": "arn:aws:kendra-ranking:${Region}:${Account}:rescore-execution-plan/${RescoreExecutionPlanId}" } ] }
docker-compose.yml の例
OpenSearch 2.4.0以降とインテリジェントランキングプラグインとダッシュボード2.4.0以降を使用したdocker-compose.ymlファイルの例。 OpenSearch
version: '3' networks: opensearch-net: volumes: <
volume-name
>: services: opensearch-node: image: <Docker image tag name of OpenSearch with Intelligent Ranking plugin
> container_name: opensearch-node environment: - cluster.name=opensearch-cluster - node.name=opensearch-node - discovery.type=single-node - kendra_intelligent_ranking.service.endpoint=https://kendra-ranking.<region
>.api.aws - kendra_intelligent_ranking.service.region=<region
> - kendra_intelligent_ranking.service.execution_plan_id=<rescore-execution-plan-id
> ulimits: memlock: soft: -1 hard: -1 nofile: soft: 65536 hard: 65536 ports: - 9200:9200 - 9600:9600 networks: - opensearch-net volumes: <docker-volume-name
>:/usr/share/opensearch/data opensearch-dashboard: image: opensearchproject/opensearch-dashboards:<your-version
> container_name: opensearch-dashboards ports: - 5601:5601 environment: OPENSEARCH_HOSTS: '["https://opensearch-node:9200"]' networks: - opensearch-net
Dockerfile とイメージの構築の例
インテリジェント・ランキング・プラグインで 2.4.0 以降を使用する場合の例。Dockerfile
OpenSearch
FROM opensearchproject/opensearch:<
your-version
> RUN /usr/share/opensearch/bin/opensearch-plugin install --batch https://github.com/opensearch-project/search-processor/releases/download/<your-version
>/search-processor.zip
OpenSearch インテリジェント・ランキング・プラグインを使用した Docker イメージの構築。
docker build --tag=<
Docker image tag name of OpenSearch with Intelligent Ranking plugin
>
インテリジェント検索プラグインとのやり取り
Intelligent Ranking プラグインを使用してセットアップ OpenSearch (自己管理) すると、curl OpenSearch コマンドまたはクライアントライブラリを使用してプラグインを操作できます。Intelligent Ranking OpenSearch プラグインでアクセスするためのデフォルトの認証情報は、ユーザー名「admin」、パスワード「admin」です。
インテリジェント・ランキングプラグインの設定をインデックスに適用するには OpenSearch :
ドキュメント本文やドキュメントコンテンツフィールドなど、再ランク付けに使用するメインテキストフィールドの名前を含める必要があります。ドキュメントのタイトルや概要など、他のテキストフィールドも含めることができます。
これで、任意のクエリを発行できるようになり、その結果はインテリジェントランキングプラグインを使ってランク付けされます。
OpenSearch インデックスのインテリジェント・ランキングプラグイン設定を削除するには:
インテリジェントランキングプラグインを特定のクエリでテストしたり、特定の本文やタイトルフィールドでテストするには:
OpenSearch Amazon Kendra 結果と結果の比較
ランク付けされた結果と、再ランク付けされた結果を比較 side-by-side OpenSearch (自己管理) できます。 Amazon Kendra OpenSearch バージョン 2.4.0 side-by-side 以降のダッシュボードでは結果が表示されるため、 OpenSearch ドキュメントのランク付け方法と検索クエリでのドキュメントのランク付け方法を比較したり、 Amazon Kendra プラグインがドキュメントをランク付けしたりできるようになります。
OpenSearch Amazon Kendra ランク付けされた結果と再ランク付けされた結果を比較する前に、 OpenSearch ダッシュボードが Intelligent Ranking OpenSearch プラグインを備えたサーバーによって支えられていることを確認してください。これは Docker とクイックスタート Bash スクリプトを使用して設定できます。インテリジェント検索プラグインの設定 を参照してください。
以下では、 OpenSearch Amazon Kendra ダッシュボードで結果を比較および検索する方法の概要を説明します。 OpenSearch 詳細については、ドキュメンテーションを参照してください。OpenSearch
OpenSearch ダッシュボードの検索結果の比較
-
http://localhost:5601 OpenSearch を開いてダッシュボードにサインインします。デフォルトの認証情報は、ユーザー名は「admin」、パスワードは「admin」です。
-
OpenSearch ナビゲーションメニューのプラグインから [検索関連性] を選択します。
-
検索バーに検索テキストを入力します。
-
クエリ 1 のインデックスを選択し、クエリ DSL OpenSearch にクエリを入力します。この
%SearchText%
変数を使用して、検索バーに入力した検索テキストを参照できます。このクエリの例については、「OpenSearch ドキュメント」を参照してください。このクエリで返される結果は、Intelligent Ranking OpenSearch プラグインを使用しない結果です。 -
クエリ 2 に同じインデックスを選択し、同じクエリを OpenSearch Query DSL に入力します。また、
kendra_intelligent_ranking
を持つ拡張子を含め、ランク付けに必須のbody_field
を指定します。タイトルフィールドも指定できますが、本文フィールドは必須です。このクエリの例については、「OpenSearch ドキュメント」を参照してください。このクエリで返される結果は、Intelligent Ranking Amazon Kendra プラグインを使用して再ランク付けされた結果です。このプラグインは最大 25 件の結果をランク付けします。 -
[検索] を選択すると、結果を返して比較できます。