

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Structure et éléments de l'expression du filtre
<a name="creating-filter-expressions"></a>

Cette section contient des informations sur la structure des expressions de filtre et de leurs éléments.

**Topics**
+ [Structure d'expression du filtre](#filter-expression-structure)
+ [Filtrer les éléments d'expression](#filter-expression-elements)

## Structure d'expression du filtre
<a name="filter-expression-structure"></a>

La structure générale d'une expression de filtre est la suivante : 

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

Vous pouvez créer manuellement des expressions de filtre ou obtenir de l'aide concernant la syntaxe et la structure des expressions à l'aide du [générateur d'expressions](filter-real-time.md#using-filter-expression-builder) de la console. 

## Filtrer les éléments d'expression
<a name="filter-expression-elements"></a>

Utilisez les éléments suivants pour créer des expressions de filtre :

**INCLURE ou EXCLURE**  
`INCLUDE`À utiliser pour limiter les recommandations aux seuls éléments qui répondent aux critères du filtre *OU* `EXCLUDE` pour supprimer tous les éléments qui répondent aux critères du filtre.

**ItemID/ActionID/UserID**  
Utilisez l'un de ces éléments après l'`EXCLUDE`élément `INCLUDE` ou. L'élément que vous utilisez varie selon que vous filtrez les éléments (pour les recommandations d'éléments), les actions (pour les recommandations d'actions) ou les utilisateurs (pour les segments d'utilisateurs). 

**WHERE**  
`WHERE`À utiliser pour vérifier les conditions des éléments, des actions ou des utilisateurs. Vous devez utiliser l'`WHERE`élément après le `ItemID``ActionID`, ou`UserID`. 

**ET/OU**  
Pour enchaîner plusieurs conditions au sein d'une même expression de filtre, utilisez `AND` ou`OR`. Les conditions sont enchaînées en utilisant `AND` ou ne `OR` peuvent affecter que les champs du jeu de données utilisé dans la première condition.

**Dataset.field**  
Indiquez le jeu de données et le champ de métadonnées selon lesquels vous souhaitez filtrer les recommandations`dataset`. `field`format. Par exemple, pour filtrer les recommandations d'articles en fonction du champ genres de votre jeu de données Items, vous devez utiliser Items.Genres dans votre expression de filtre. 

**État IF**  
N'utilisez une `IF` condition *que* pour vérifier les conditions de la `CurrentUser` et *une seule fois* à la fin d'une expression. Cependant, vous pouvez étendre une `IF` condition en utilisant`AND`. 

**CurrentUser.attribut**  
 Pour filtrer les recommandations d'articles en fonction de l'utilisateur pour lequel vous recevez des recommandations, dans une condition IF *uniquement*, utilisez `CurrentUser` et fournissez le champ utilisateur. Par exemple, `CurrentUser.AGE`. 

**CurrentItem.attribut**  
 Pour les articles connexes, les recettes et les cas d'utilisation uniquement, utilisez`CurrentItem`. `attribute`pour filtrer les articles en fonction d'un attribut de l'article que vous spécifiez dans votre demande de recommandations d'articles connexes. Par exemple, `CurrentItem.GENRE` ou `CurrentItem.PRICE`.   
 Vous ne pouvez appliquer un filtre à l' CurrentItem élément que si votre cas d'utilisation de domaine ou votre recette personnalisée génère des recommandations d'articles connexes, telles que la recette Similar-Items ou le cas d'utilisation du domaine *More Like X.* La première fois que vous créez un filtre avec un `CurrentItem` élément, la création du filtre peut prendre quelques minutes. Si vous l'utilisez AWS KMS pour le chiffrement, la création du filtre peut prendre jusqu'à 15 minutes. 

**DANS/PAS DEDANS**  
Utilisez `IN` ou `NOT IN` comme opérateur de comparaison pour filtrer en fonction de la correspondance (ou de la non-correspondance) d'une ou de plusieurs valeurs de chaîne. Amazon Personalize filtre uniquement sur des chaînes exactes.

**Opérateurs de comparaison**  
Utilisez =, <, <=, >, >= et \! = opérateurs pour tester l'égalité des données numériques, y compris les données transmises dans un paramètre d'espace réservé.

**Caractère astérisque (\*)**  
`*`À utiliser pour inclure ou exclure des interactions de tous types. À utiliser `*` *uniquement* pour les expressions de filtre qui utilisent le `EVENT_TYPE` champ d'un `Interactions` ensemble de données.

**Séparateur de tuyaux**  
Utilisez le séparateur de tubes (`|`) pour enchaîner plusieurs expressions. Pour de plus amples informations, veuillez consulter [Combinaison de plusieurs expressions](multiple-expression-example.md).

**Parameters**  
Pour les expressions qui utilisent des opérateurs de comparaison ou l'`IN`opérateur, utilisez le signe dollar ($) et un nom de paramètre pour ajouter un paramètre d'espace réservé en tant que valeur. Par exemple, `$GENRES`. Dans cet exemple, lorsque vous recevez des recommandations, vous indiquez le ou les genres à filtrer.  
Vous définissez un nom de paramètre lorsque vous l'ajoutez à une expression. Le nom du paramètre ne doit pas nécessairement correspondre au nom du champ. Nous vous recommandons d'utiliser un nom de paramètre similaire au nom du champ et facile à mémoriser. Vous utilisez le nom du paramètre (en distinguant majuscules et minuscules) lorsque vous appliquez le filtre aux demandes de recommandations. Pour un exemple montrant comment appliquer un filtre avec des paramètres d'espace réservé lors de l'utilisation des AWS SDK, voir. [Appliquer un filtre (AWS SDKs)](filter-real-time.md#applying-filter-sdk)