本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置插件
安装 Amazon Personalize 搜索排名插件后,就可以通过创建 OpenSearch 搜索管道对其进行配置了。
搜索管道 是一组请求和响应处理器,可按照您创建此类处理器的顺序依次对其运行。为插件创建搜索管道时,指定 personalized_search_ranking
响应处理器。有关搜索管道的信息,请参阅搜索管道
personalized_search_ranking
响应处理器的字段
对于 personalized_search_ranking
响应处理器,您需指定以下字段:
-
campaign_arn(必填) - 指定用于对结果进行个性化设置的 Amazon Personalize 市场活动的 Amazon 资源名称 (ARN)。
-
item_id_field(可选)— 如果中已编入索引的文档的
_id
字段与您的 Amazon Personalize ItemID OpenSearch 不对应,请指定与之对应的字段名称。默认情况下,该插件假定_id
数据与 Amazon Personalize 数据中的 itemId 相匹配。 -
食谱(必填) - 指定要使用的 Amazon Personalize 食谱的名称。您只能指定
aws-personalized-ranking
。 -
权重(必填) - 指定响应处理器在重新对结果排名时对个性化的重视程度。指定一个介于 0.0 至 1.0 范围内的值。该值越接近
1.0
,Amazon Personalize 结果排名越高的可能性越大。如果您指定0.0
,则不会进行个性化设置,并且 OpenSearch 优先考虑。 -
标签(可选) - 指定处理器的标识符。
-
iam_role_arn( OpenSearch 服务为必填项,开源为可选 OpenSearch)— 对于服务 OpenSearch ,请提供您在设置服务访问您的 Amazon Personalize 资源的权限时创建的角色的亚马逊资源名称 (ARN)。 OpenSearch 如果您的 OpenSearch 服务和 Amazon Personalize 资源存在于不同的账户中,请指定授予 OpenSearch 服务
AssumeRole
权限的角色。有关更多信息,请参阅 在资源属于不同账户时配置权限。对于开源 OpenSearch,如果您使用多个角色来限制组织中不同用户组的权限,请指定有权访问 Amazon Personalize 的角色的 ARN。如果您仅使用 OpenSearch 密钥库中的 Amazon 凭据,则可以省略此字段。
-
aws_region(必填)— 您创建 Amazon Personalize 活动所在的地 Amazon 区。
-
ignore_failure(可选) - 指定插件是否忽略任何处理器故障。对于值,指定
true
或false
。对于您的生产环境,我们建议您指定true
以免查询响应出现中断。对于测试环境,您可以指定false
以查看插件生成的任何错误。 -
external_account_iam_role_arn — 如果您使用服务, OpenSearch 并且您的亚马逊个性化和服务 OpenSearch 资源存在于不同的账户中,请指定有权访问您的亚马逊个性化资源的角色的 ARN。此角色必须与您的 Amazon Personalize 资源位于同一个账户中。有关更多信息,请参阅 在资源属于不同账户时配置权限。
使用 Amazon OpenSearch 服务创建管道
您可以使用以下 Python 代码在 OpenSearch 服务域上创建带有personalized_search_ranking
响应处理器的搜索管道。将 domain endpoint
替换为您的域端点 URL。例如:https://<domain
name>.<Amazon region>.es-staging.amazonaws.com
。
import requests from requests_auth_aws_sigv4 import AWSSigV4 domain_endpoint = '
domain endpoint
' pipeline_name = 'pipeline name
' url = f'{domain_endpoint}/_search/pipeline/{pipeline_name}' auth = AWSSigV4('es') headers = {'Content-Type': 'application/json'} body = { "description": "A pipeline to apply custom re-ranking from Amazon Personalize", "response_processors": [ { "personalized_search_ranking
" : { "campaign_arn" : "Amazon Personalize Campaign ARN
", "item_id_field" : "productId
", "recipe" : "aws-personalized-ranking", "weight" : "0.3
", "tag" : "personalize-processor
", "iam_role_arn": "Role ARN
", "aws_region": "Amazon region
", "ignore_failure":true
} ] } try: response = requests.put(url, auth=auth, json=body, headers=headers, verify=False) print(response.text) except Exception as e: print(f"Error: {e}")
使用personalized_search_ranking
响应处理器创建搜索管道后,就可以开始将该插件应用于 OpenSearch 查询了。您可以将其应用于 OpenSearch 索引或单个 OpenSearch 查询。有关更多信息,请参阅 将插件应用于 OpenSearch 查询。
使用开源创建管道 OpenSearch
您可以使用以下 curl 命令在开源 OpenSearch 集群上创建带有personalized_search_ranking
响应处理器的搜索管道。
curl -X PUT "http://localhost:9200/_search/pipeline/
pipeline-name
" -ku 'admin:admin' --insecure -H 'Content-Type: application/json' -d' { "description": "A pipeline to apply custom re-ranking from Amazon Personalize", "response_processors" : [ { "personalized_search_ranking
" : { "campaign_arn" : "Amazon Personalize Campaign ARN
", "item_id_field" : "productId
", "recipe" : "aws-personalized-ranking", "weight" : "0.3
", "tag" : "personalize-processor
", "iam_role_arn": "Role ARN
", "aws_region": "Amazon region
", "ignore_failure":true
} } ] }'
使用personalized_search_ranking
响应处理器创建搜索管道后,就可以开始将该插件应用于 OpenSearch 查询了。您可以将其应用于 OpenSearch 索引或单个 OpenSearch 查询。有关更多信息,请参阅 将插件应用于 OpenSearch 查询。