个性化搜索排名处理器
2.9 版本引入
personalize_search_ranking
搜索响应处理器会拦截搜索响应,并使用 Amazon Personalize 根据其 Amazon Personalize 排名重新排序搜索结果。此排名基于用户的过去行为以及搜索项目和用户的元数据。
要使用 personalize_search_ranking
处理器,您必须首先安装 Amazon Personalize 搜索排名(opensearch-search-processor
)插件。有关详细说明,请参阅安装和配置 Amazon Personalize 搜索排名插件。
请求正文字段
下表列出了所有可用的请求字段。
字段 | 数据类型 | 描述 |
---|---|---|
campaign_arn | 字符串 | 用于个性化结果的 Amazon Personalize 活动的 Amazon 资源名称 (ARN)。必填。 |
recipe | 字符串 | 要使用的 Amazon Personalize 配方的名称。目前,此字段唯一支持的值是 aws-personalized-ranking 。必填。 |
weight | 浮点型 | 用于 OpenSearch 和 Amazon Personalize 提供的排名的权重。有效值在 [0.0, 1.0] 范围内。权重越接近 1.0,在计算排名时,Amazon Personalize 的权重就越大,而不是 OpenSearch。如果指定 0.0,则使用 OpenSearch 排名。如果指定 1.0,则使用 Amazon Personalize 排名。必填。 |
item_id_field | 字符串 | 如果 OpenSearch 中索引文档的 _id 字段与您的 Amazon Personalize itemId 不对应,请指定对应的字段名称。默认情况下,插件假定 _id 数据与您的 Amazon Personalize 数据中的 itemId 匹配。 |
iam_role_arn | 字符串 | 如果您使用多个角色来限制组织中不同用户组的权限,请指定具有访问 Amazon Personalize 权限的角色的 ARN。如果您只使用 OpenSearch 密钥库中的 AWS 凭据,则可以省略此字段。可选。 |
tag | 字符串 | 处理器的标识符。可选。 |
description | 字符串 | 处理器的描述。可选。 |
ignore_failure | 布尔型 | 如果为 true ,OpenSearch 将忽略此处理器的任何失败,并继续运行搜索管道中的其余处理器。可选。默认值为 false 。 |
示例
以下示例演示了如何使用包含 personalize_search_ranking
处理器的搜索管道。
创建搜索管道
以下请求创建一个包含 personalize_search_ranking
响应处理器的搜索管道
PUT /_search/pipeline/my-pipeline
{
"description": "A pipeline to apply custom reranking 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": "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" }
}
}
}
有关其他详细信息,请参阅个性化 OpenSearch (自管理) 搜索结果。