筛选条件表达式结构和元素 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

筛选条件表达式结构和元素

本部分包含有关筛选条件表达式的结构及其元素的信息。

筛选条件表达式结构

筛选器表达式的一般结构如下所示:

EXCLUDE/INCLUDE ItemID/ActionID/UserID WHERE dataset type.field IN/NOT IN (value/parameter)

您可以手动创建筛选器表达式,也可以使用控制台中的表达式生成器获取有关表达式语法和结构的帮助。

筛选器表达式元素

使用以下元素创建筛选器表达式:

INCLUDE 或 EXCLUDE

使用 INCLUDE,将建议限制为仅符合筛选条件的物品,或者 使用 EXCLUDE,删除所有符合筛选条件的物品。

ItemID/ActionID/UserID

INCLUDEEXCLUDE 元素之后使用上述一个元素。您使用的元素取决于您是在筛选物品(针对物品建议)、筛选操作(针对操作建议)还是筛选用户(针对用户细分)。

WHERE

使用 WHERE 检查物品、操作或用户的条件。您必须在 ItemIDActionIDUserID 之后使用 WHERE 元素。

AND/OR

要在同一个筛选器表达式中将多个条件链接在一起,请使用 ANDOR。使用 ANDOR 将条件链接在一起,只能影响第一个条件中使用的数据集字段。

Dataset.field

提供要按 dataset.field 格式筛选建议的数据集和元数据字段。例如,要根据物品数据集中的类型字段筛选物品建议,可以在筛选条件表达式中使用 Items.genres。

IF 条件

使用 IF 条件检查 CurrentUser 的条件,并且只能在表达式的末尾使用一次。但是,您可以使用 AND 扩展 IF 条件。

CurrentUser. 属性

在 IF 条件下根据获得建议的用户筛选物品建议,请使用 CurrentUser 并提供用户字段。例如,CurrentUser.AGE

CurrentItem. 属性

对于仅相关物品食谱和使用案例,使用 CurrentItem.attribute,根据您在请求相关物品建议时指定的物品属性筛选物品。例如,CurrentItem.GENRECurrentItem.PRICE

只有当您的域用例或自定义配方生成相关项目推荐(例如 Similar-Items 配方或 M ore Like X 域用例)时,您才能对 CurrentItem 元素应用筛选条件。首次使用 CurrentItem 元素创建筛选器时,可能需要几分钟才能创建筛选器。如果您使用 Amazon KMS 加密,则创建筛选器最多可能需要 15 分钟。

IN/NOT IN

使用 INNOT IN 作为比较运算符,根据匹配(或不匹配)一个或多个字符串值进行筛选。Amazon Personalize 仅根据精确的字符串进行筛选。

比较运算符

使用 =、<、<=、>、>= 和! = 运算符用于测试数值数据(包括在占位符参数中传递的数据)是否相等。

星号 (*) 字符

使用 * 包含或排除所有类型的交互。* 用于使用 Interactions 数据集 EVENT_TYPE 字段的筛选器表达式。

竖线分隔符

使用竖线分隔符 (|) 将多个表达式链接在一起。有关更多信息,请参阅 组合多个表达式

参数

对于使用比较运算符或 IN 运算符的表达式,使用美元符号 ($) 和参数名称,将占位符参数添加为值。例如,$GENRES。在此示例中,获得建议时,您需提供一个或多个要筛选的类型。

注意

当您将参数名称添加到表达式时,可以定义该名称。参数名称不必与字段名称匹配。我们建议您使用与字段名称相似且容易记住的参数名称。在对建议请求应用筛选器时,您可以使用参数名称(区分大小写)。有关演示如何在使用 Amazon SDK 时使用占位符参数应用过滤器的示例,请参阅。应用过滤器 (Amazon SDK)