

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

# 物品建议筛选条件表达式示例
<a name="item-recommendation-filter-examples"></a>

以下筛选条件表达式显示了如何根据物品交互、物品元数据和用户元数据筛选物品建议。它们按数据类型组织。

**Topics**
+ [物品交互数据](#item-interaction-filter-examples)
+ [物品数据](#item-filter-examples)
+ [用户数据](#user-filter-examples)

## 物品交互数据
<a name="item-interaction-filter-examples"></a>

以下表达式根据事件类型（例如单击）或您使用 `$EVENT_TYPE` 参数获取建议时指定的事件类型，排除物品。

```
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ($EVENT_TYPE)
```

 以下表达式排除用户单击或流式传输过的物品。

```
EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")
```

以下表达式仅包含用户已单击的物品。

```
INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click")
```

## 物品数据
<a name="item-filter-examples"></a>

以下表达式根据类别或您使用 `$CATEGORY` 参数获取建议时指定的类别，排除物品。

```
EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)
```

以下表达式仅包含比当前物品（您在请求相关物品建议时指定的物品）便宜且由与当前物品相同的工作室创建的物品。只有当您的域用例或自定义配方生成相关项目推荐时，您才能对 CurrentItem 元素应用过滤器。

```
INCLUDE ItemID WHERE Items.PRICE < CurrentItem.PRICE AND Items.GENRE IN CurrentItem.GENRE
```

 以下表达式根据多个类别字段级别排除物品。它排除 CATEGORY\$1L1 值为 `shoe`、CATEGORY\$1L2 值*不* 为 `boot` 的物品。

```
EXCLUDE ItemID WHERE Items.CATEGORY_L1 IN ("shoe") AND Items.CATEGORY_L2 NOT IN ("boot")
```

以下表达式仅包含价格低于或等于您在使用 `$PRICE` 参数获取建议时指定的价格的物品。

```
INCLUDE ItemID WHERE Items.PRICE <= $PRICE
```

以下表达式仅包含早于您在获取建议时指定的时间戳（采用 Unix 纪元时间）所创建的物品。

```
INCLUDE ItemID WHERE Items.CREATION_TIMESTAMP < $DATE
```

以下表达式仅包含带有您在使用 `$GENRE` 参数获取建议时指定的一个或多个类型的物品。

```
INCLUDE ItemID WHERE Items.GENRE IN ($GENRE)
```

以下表达式仅包含比当前物品更昂贵*且* 创建时间比您指定的时间戳（采用 Unix 纪元时间）更新的物品。如果您要获得相关物品建议，并想要根据价格和不同的创建日期应用一些特定的业务规则，则可以使用此筛选器。

```
INCLUDE ItemID WHERE Items.PRICE < CurrentItem.PRICE AND Items.CREATION_TIMESTAMP > $DATE
```

## 用户数据
<a name="user-filter-examples"></a>

以下表达式排除含有您在使用 `$GENRE` 参数获取建议时指定的一个或多个类型的物品，但前提是当前用户的年龄等于您使用 `$AGE` 参数获取建议时指定的值。

```
EXCLUDE ItemID WHERE Items.GENRE IN ($GENRE) IF CurrentUser.AGE = $AGE
```

如果当前用户的年龄超过 `18`，则以下表达式仅包含 CATEGORY\$1L1 为 `watch`、CATEGORY\$1L2 为 `luxury` 的物品。

```
INCLUDE ItemID WHERE Items.CATEGORY_L1 IN ("watch") AND Items.CATEGORY_L2 IN ("luxury") IF CurrentUser.AGE > 18
```