个性化搜索排名处理器
personalize_search_ranking 搜索响应处理器会拦截搜索响应,并使用 Amazon Personalize 根据 Amazon Personalize 的排名对搜索结果进行重排。该排名基于用户过去的行为以及搜索项目和用户的元数据。
要使用 personalize_search_ranking 处理器,必须先安装 Amazon Personalize 搜索排名(opensearch-search-processor)插件。详细说明请参阅安装和配置 Amazon Personalize 搜索排名插件。
请求正文字段
下表列出了所有可用的请求字段。
| 字段 | 数据类型 | 描述 |
|---|---|---|
campaign_arn |
字符串 | 用于个性化结果的 Amazon Personalize 活动的亚马逊资源名称(ARN)。必需。 |
recipe |
字符串 | 要使用的 Amazon Personalize 配方名称。目前,此字段唯一支持的值是 aws-personalized-ranking。必需。 |
weight |
浮点数 | 与 UDB-SX 和 Amazon Personalize 提供的排名一起使用的权重。有效值在 [0.0, 1.0] 范围内。权重越接近 1.0,计算排名时给予 Amazon Personalize 的权重相对于 UDB-SX 越大。如果指定 0.0,则使用 UDB-SX 排名。如果指定 1.0,则使用 Amazon Personalize 排名。必需。 |
item_id_field |
字符串 | 如果 UDB-SX 中索引文档的 _id 字段与您的 Amazon Personalize itemId 不匹配,请指定匹配的字段名称。默认情况下,插件假定 _id 数据与 Amazon Personalize 数据中的 itemId 匹配。 |
iam_role_arn |
字符串 | 如果您使用多个角色来限制组织中不同用户组的权限,请指定有权访问 Amazon Personalize 的角色的 ARN。如果您仅使用 UDB-SX 密钥库中的 AWS 凭据,则可以省略此字段。可选。 |
tag |
字符串 | 处理器的标识符。可选。 |
description |
字符串 | 处理器的描述。可选。 |
ignore_failure |
布尔值 | 如果为 true,UDB-SX 会忽略此处理器的任何失败,并继续运行搜索管道中的其余处理器。可选。默认为 false。 |
示例
以下示例演示了使用带有 personalize_search_ranking 处理器的搜索管道。
创建搜索管道
以下请求创建一个带有 personalize_search_ranking 响应处理器的搜索管道:
PUT /_search/pipeline/my-pipeline
{
"description": "用于应用来自 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": "AWS region"
}
}
]
}
使用搜索管道
要使用管道进行搜索,请在 search_pipeline 查询参数中指定管道名称。例如,以下请求使用上一节设置的管道搜索喜剧电影:
GET /movies/_search?search_pipeline=my-pipeline
{
"query": {
"multi_match": {
"query": "Comedy",
"fields": ["GENRES"]
}
},
"ext": {
"personalize_request_parameters": {
"user_id": "user ID",
"context": { "DEVICE" : "mobile phone" }
}
}
}
更多详细信息,请参阅个性化 UDB-SX(自托管)的搜索结果(请联系售前工作人员获取结果文档)。