

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Estructura y elementos de las expresiones de filtro
<a name="creating-filter-expressions"></a>

Esta sección incluye información sobre de la estructura de las expresiones de filtro y sus elementos.

**Topics**
+ [Estructura de las expresiones de filtro](#filter-expression-structure)
+ [Filtrar elementos de expresión](#filter-expression-elements)

## Estructura de las expresiones de filtro
<a name="filter-expression-structure"></a>

La estructura general de una expresión de filtro es la siguiente: 

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

Puede crear expresiones de filtro manualmente u obtener ayuda con la estructura y la sintaxis de expresiones mediante el [Generador de expresiones](filter-real-time.md#using-filter-expression-builder) de la consola. 

## Filtrar elementos de expresión
<a name="filter-expression-elements"></a>

Utilice los siguientes elementos para crear expresiones de filtro:

**INCLUDE o EXCLUDE**  
Utilice `INCLUDE` para limitar las recomendaciones a solo los elementos que cumplen los criterios de filtro *O* use `EXCLUDE` para eliminar todos los elementos que cumplen los criterios de filtro.

**ItemID/ActionID/UserID**  
Use uno de estos elementos después del elemento `INCLUDE` o `EXCLUDE`. El elemento que utilice depende de si está filtrando elementos (para recomendaciones de elementos), acciones (para recomendaciones de acciones) o usuarios (para segmentos de usuarios). 

**WHERE**  
Utilice `WHERE` para comprobar las condiciones de los elementos, acciones o usuarios. Debe usar el elemento `WHERE` después de `ItemID`, `ActionID` o `UserID`. 

**AND/OR**  
Para encadenar varias condiciones dentro de la misma expresión de filtro, utilice `AND` o `OR`. Las condiciones encadenadas mediante `AND` o `OR` solo pueden afectar a los campos del conjunto de datos utilizados en la primera condición.

**Dataset.field**  
Proporcione el conjunto de datos y el campo de metadatos por los que desea filtrar las recomendaciones con el formato `dataset`.`field`. Por ejemplo, para filtrar recomendaciones de elementos en función del campo de géneros del conjunto de datos de elementos, utilizaría Items.genres en su expresión de filtro. 

**Condición IF**  
Utilice una condición `IF` *solo* para comprobar las condiciones de una expresión `CurrentUser` y solo *una vez* al final de la misma. Sin embargo, puede extender una condición `IF` mediante `AND`. 

**CurrentUser.atributo**  
 Para filtrar las recomendaciones de elementos en función del usuario para el que está recibiendo recomendaciones, en *solo* una condición IF, utilice `CurrentUser` y proporcione el campo de usuario. Por ejemplo, `CurrentUser.AGE`. 

**CurrentItem.atributo**  
 Para casos de uso y recetas de elementos relacionados, utilice `CurrentItem`.`attribute` para filtrar elementos en función de un atributo del elemento que especifique en su solicitud de recomendaciones de elementos relacionados. Por ejemplo, `CurrentItem.GENRE` o `CurrentItem.PRICE`.   
 Puedes aplicar un filtro con el CurrentItem elemento solo si el caso de uso de tu dominio o la receta personalizada generan recomendaciones de artículos relacionados, como la receta de artículos similares o el caso de uso del dominio *More Like X.* La primera vez que cree un filtro con un elemento `CurrentItem`, la creación del filtro tardará unos minutos. Si lo utilizas AWS KMS para cifrar, la creación del filtro puede tardar hasta 15 minutos. 

**IN/NOT IN**  
Utilice `IN` o `NOT IN` como operadores de comparación para filtrar en función de la coincidencia (o no coincidencia) de uno o más valores de cadena. Amazon Personalize filtra solo las cadenas exactas.

**Operadores de comparación**  
Utilice los operadores =, <, <=, >, >= y \$1= para probar la igualdad de los datos numéricos, incluidos los datos pasados en un parámetro de marcador de posición.

**Carácter de asterisco (\$1)**  
Use `*` para incluir o excluir interacciones de todo tipo. Use `*` *solo* para filtrar expresiones que empleen el campo `EVENT_TYPE` de un conjunto de datos de `Interactions`.

**Separador vertical**  
Utilice el separador vertical (`|`) para encadenar varias expresiones. Para obtener más información, consulte [Combinación de varias expresiones](multiple-expression-example.md).

**Parameters**  
En el caso de las expresiones que utilizan operadores de comparación o el operador `IN`, utilice el signo de dólar (\$1) y un nombre de parámetro para añadir un parámetro de marcador de posición como valor. Por ejemplo, `$GENRES`. En este ejemplo, cuando reciba recomendaciones, especifica los géneros por los que desea filtrar.  
El nombre de un parámetro se define al añadirlo a una expresión. El nombre del parámetro no tiene que coincidir con el nombre del campo. Recomendamos que utilice un nombre de parámetro que sea similar al nombre del campo y sencillo de recordar. Utilice el nombre del parámetro (distingue entre mayúsculas y minúsculas) al aplicar el filtro a las solicitudes de recomendaciones. Para ver un ejemplo que muestra cómo aplicar un filtro con parámetros de marcador de posición cuando se utiliza el AWS SDK, consulte. [Aplicación de un filtro (AWS SDKs)](filter-real-time.md#applying-filter-sdk)