OpenSearch プラグインをクエリに適用する。 - Amazon Personalize

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OpenSearch プラグインをクエリに適用する。

personalized_search_rankingレスポンスプロセッサを使用して検索パイプラインを設定したら、Amazon Personalize Search Ranking OpenSearch プラグインをクエリに適用し、再ランク付けされた結果を表示できるようになります。

OpenSearch プラグインをクエリに適用すると、検索パイプラインのメトリックスを取得してプラグインをモニタリングできます。詳細については、「プラグインの監視」を参照してください。

Amazon OpenSearch サービスクエリへのプラグインの適用

Amazon Personalize Search Ranking プラグインは、インデックスのすべてのクエリとレスポンスに適用できます。このプラグインは個々のクエリとレスポンスにも適用できます。

  • 次の Python コードを使用して、検索パイプラインをインデックスに適用できます。この方法では、このインデックスを使用するすべての検索で、プラグインを使用して検索結果にパーソナライゼーションを適用します。

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_settings/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "index.search.default_pipeline": "pipeline name" } try: response = requests.put(url, auth=auth, json=body, headers=headers) print(response.text) except Exception as e: print(f"Error: {e}")
  • 次の Python コードを使用して、トヨタブランドの自動車の個別のクエリに検索パイプラインを適用できます。

    コードを更新して、ドメインエンドポイント、 OpenSearch サービスインデックス、パイプラインの名前、クエリを指定します。user_id には、検索結果を取得するユーザーの ID を指定します。Amazon Personalize ソリューションバージョンの作成に使用したデータに、このユーザーが存在する必要があります。ユーザーが不在の場合、Amazon Personalize は人気に基づいてアイテムをランク付けします。

    context には、コンテキストメタデータを使用する場合は、デバイスタイプなどのユーザーのコンテキストメタデータを提供してください。context フィールドはオプションです。詳細については、「コンテキストメタデータを使用したレコメンデーションの関連性の向上」を参照してください。

    import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = 'domain endpoint' index = 'index name' url = f'{domain_endpoint}/{index}/_search/' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} params = {"search_pipeline": "pipeline-name"} body = { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "USER ID" "context": { "DEVICE" : "mobile phone" } } } } try: response = requests.post(url, auth=auth, params=params, json=body, headers=headers, verify=False) print(response) except Exception as e: print(f"Error: {e}")

オープンソースのクエリにプラグインを適用します。 OpenSearch

Amazon Personalize Search Ranking プラグインは、 OpenSearch インデックスのすべてのクエリとレスポンスに適用できます。 OpenSearch このプラグインは個々のクエリとレスポンスにも適用できます。

  • 次の curl コマンドは、 OpenSearch OpenSearch ローカルで実行されているオープンソースクラスターのインデックスに検索パイプラインを適用します。この方法では、このインデックスでのすべての検索がプラグインを使用して検索結果にパーソナライゼーションを適用します。

    curl -XGET "https://localhost:9200/index/_settings" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "index.search.default_pipeline" : "pipeline-name" } '
  • 次の curl コマンドは、 OpenSearch ローカルで実行されているオープンソースクラスター内のインデックスで Toyota ブランドの車を対象とする個別のクエリに検索パイプラインを適用します。

    user_id には、検索結果を取得するユーザーの ID を指定します。Amazon Personalize ソリューションバージョンの作成に使用したデータに、このユーザーが存在する必要があります。ユーザーが不在の場合、Amazon Personalize は人気に基づいてアイテムをランク付けします。context には、コンテキストメタデータを使用する場合は、デバイスタイプなどのユーザーのコンテキストメタデータを提供してください。context フィールドはオプションです。詳細については、「コンテキストメタデータを使用したレコメンデーションの関連性の向上」を参照してください。

    curl -XGET "http://localhost:9200/index/_search?search_pipeline=pipeline-name" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "query": { "multi_match": { "query": "Toyota", "fields": ["BRAND"] } }, "ext": { "personalize_request_parameters": { "user_id": "user ID", "context": { "DEVICE" : "mobile phone" } } } } '

結果がどのように再ランク付けされるかを理解するには、 OpenSearch OpenSearch ダッシュボードを使用してプラグインを使用して結果を再ランク付けした結果と比較できます。詳細については、「 OpenSearch 結果をプラグインの結果と比較します。」を参照してください。

OpenSearch プラグインをクエリに適用すると、パイプラインのメトリクスを取得してプラグインを監視できます。 OpenSearch詳細については、「プラグインの監視」を参照してください。