

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.

# Expresiones de filtro
<a name="filter-expressions"></a>

Para configurar filtros, debe usar una *expresión de filtro* con el formato correcto. Las expresiones de filtro se componen de identificadores de campo y conjuntos de datos en el formato `dataset`.`field`, junto con operadores lógicos, palabras clave y valores. En el caso de los valores, puede especificar valores fijos o añadir parámetros marcadores de posición para establecer los criterios de filtro cuando reciba recomendaciones.

Puede usar expresiones de filtro para filtrar elementos, usuarios o acciones de las recomendaciones en función de los datos de los siguientes conjuntos de datos:
+  **Interacciones de elemento**: puede usar expresiones de filtro para incluir o excluir elementos o usuarios en función de los datos de interacciones. Por ejemplo, puede excluir los elementos en los que un usuario ya haya hecho clic (para las recomendaciones de elemento) o incluir solo a los usuarios que hayan valorado los elementos (según la receta Item-Affinity). Para todos los tipos de recetas, solo puede filtrar por el tipo de evento. No puede filtrar por otros metadatos de interacción, como los metadatos contextuales. No puede utilizar interacciones de elemento con la [Receta Item-Attribute-Affinity](item-attribute-affinity-recipe.md). 

  Amazon Personalize considera hasta 100 de las interacciones más recientes por usuario y por tipo de evento. Esta es una cuota ajustable. Puede solicitar un aumento de cuota mediante la [consola de Service Quotas](https://console.aws.amazon.com/servicequotas/). Si no importa las interacciones de elemento de un usuario durante tres meses, los filtros dejarán de tener en cuenta los datos históricos del usuario. Para tener en cuenta estos datos, debe volver a importar todo el historial de eventos del usuario. 
+  **Interacciones de acción**: utilice expresiones de filtro para incluir o excluir acciones con las que un usuario ha interactuado en función del tipo de evento. Por ejemplo, puede excluir acciones que un usuario ya haya realizado. No puede filtrar por otros metadatos de interacción de acción. 

  Amazon Personalize tiene en cuenta hasta 300 de las interacciones de acción más recientes por usuario y por tipo de evento. Esta es una cuota ajustable. Puede solicitar un aumento de cuota mediante la [consola de Service Quotas](https://console.aws.amazon.com/servicequotas/). 
+  **Elementos**: utilice expresiones de filtro para incluir o excluir elementos en función de condiciones de elementos específicas. No puede usar filtros para incluir o excluir elementos en función de metadatos de elementos textuales no estructurados, como descripciones de productos. Si su caso de uso de dominio o receta personalizada genera recomendaciones de elementos relacionados, como la receta Similar-Items o el caso de uso de dominio *Más como X*, puede usar expresiones de filtro para incluir o excluir elementos en función de las propiedades del elemento que especifique en su solicitud de recomendación. 
+  **Usuarios**: en el caso de las recomendaciones de *elementos* y *acciones*, si tiene un conjunto de datos de usuarios, puede excluir o incluir elementos o acciones en función de un valor `CurrentUser`. En el caso de las recomendaciones personalizadas, elementos populares y recomendaciones de acción, este es el usuario para el que recibe las recomendaciones. Para los elementos relacionados, este es un usuario opcional que puede especificar en la solicitud de recomendación. 

  En el caso de los *segmentos de usuarios*, puede usar expresiones de filtro para incluir o excluir usuarios de los segmentos de usuarios en función de atributos, como `Users.MEMBERSHIP_STATUS`. 
+  **Acciones**: utilice expresiones de filtro para incluir o excluir acciones en función de condiciones de acción específicas. Amazon Personalize excluye acciones automáticamente en función de sus datos de `Action expiration timestamp` y `Repeat frequency`. No puede crear filtros personalizados adicionales que filtren en función de estos datos. 

Para obtener una lista completa de elementos de expresiones de filtro, consulte [Filtrar elementos de expresión](creating-filter-expressions.md#filter-expression-elements). Para ver ejemplos de expresiones de filtro, consulte [Ejemplos de expresiones de filtro](filter-expression-examples.md). 

**Topics**
+ [

# Directrices y requisitos
](filter-expression-guidelines-requirements.md)
+ [

# Estructura y elementos de las expresiones de filtro
](creating-filter-expressions.md)
+ [

# Ejemplos de expresiones de filtro
](filter-expression-examples.md)

# Directrices y requisitos
<a name="filter-expression-guidelines-requirements"></a>

 Al crear una expresión de filtro, tenga en cuenta las directrices y requisitos siguientes: 
+ No puede usar filtros para incluir o excluir elementos en función de metadatos de elementos textuales no estructurados, como descripciones de productos.
+ Si filtra en función de los datos de interacciones de elemento o acción, solo puede filtrar por el tipo de evento. No puede filtrar por otros metadatos de interacción, como los metadatos contextuales.
+ Amazon Personalize solo ignora mayúsculas y minúsculas cuando coincide con tipos de eventos.
+ No puede usar conjuntos de datos de interacciones de elementos y de elementos en una sola expresión. Para crear un filtro que filtre por conjuntos de datos de interacciones y luego por conjuntos de datos de elementos (o lo contrario), debe encadenar dos o más expresiones. Para obtener más información, consulte [Combinación de varias expresiones](multiple-expression-example.md). 
+ No puede usar conjuntos de datos de interacciones de elementos y de acciones en una sola expresión. Para crear un filtro que filtre por interacciones de elementos y luego por conjuntos de datos de acciones (o lo contrario), debe encadenar dos o más expresiones. Para obtener más información, consulte [Combinación de varias expresiones](multiple-expression-example.md). 
+ No puede utilizar interacciones de elemento con la [Receta Item-Attribute-Affinity](item-attribute-affinity-recipe.md). 
+  No puede crear expresiones de filtro que filtren utilizando valores de tipo booleano en su esquema. Para filtrar en función de valores booleanos, utilice un esquema con un campo de tipo *String* y utilice los valores `"True"` y `"False"` en sus datos. También puede usar el tipo *int* o *long*, y los valores `0` y `1`. 
+  El número máximo de campos de conjunto de datos distintos para un filtro, ya sea en una expresión o en varias expresiones encadenadas, es **10**. El número máximo de campos de conjunto de datos distintos en todos los filtros de un grupo de conjuntos de datos es **20**. 
+  Puedes aplicar un filtro con el CurrentItem elemento solo si el caso de uso de tu dominio o receta personalizada genera recomendaciones de artículos relacionados, como la receta de artículos similares o el caso de uso del dominio *More Like X.* 
+ No puede usar parámetros de marcadores de posición en una expresión de filtro que utilice el operador NOT\$1IN. En su lugar, utilice el operador IN y la acción opuesta. Por ejemplo, utilice Incluir en lugar de Excluir (o al revés).
+ No puede crear filtros que filtren en función de los datos de `Action expiration timestamp` y `Repeat frequency`. Amazon Personalize filtra las recomendaciones de acción de forma automática en función de estos datos.

# 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)

# Ejemplos de expresiones de filtro
<a name="filter-expression-examples"></a>

 Use las expresiones de filtro de las siguientes secciones para aprender a crear sus propias expresiones de filtro. 

**Topics**
+ [

# Ejemplos de expresiones de filtro de recomendaciones de elementos
](item-recommendation-filter-examples.md)
+ [

# Expresiones de filtro de segmentos de usuarios
](user-segment-filter-examples.md)
+ [

# Ejemplos de expresiones de filtro de recomendaciones de acciones
](action-recommendation-filter-examples.md)
+ [

# Combinación de varias expresiones
](multiple-expression-example.md)

# Ejemplos de expresiones de filtro de recomendaciones de elementos
<a name="item-recommendation-filter-examples"></a>

Las siguientes expresiones de filtro muestran cómo filtrar las recomendaciones de elementos en función de las interacciones y los metadatos de los elementos, así como los metadatos de usuarios. Están organizados por tipo de datos.

**Topics**
+ [

## Datos de interacciones de elementos
](#item-interaction-filter-examples)
+ [

## Datos de elementos
](#item-filter-examples)
+ [

## Datos de usuario
](#user-filter-examples)

## Datos de interacciones de elementos
<a name="item-interaction-filter-examples"></a>

La siguiente expresión excluye elementos en función de un tipo de evento (como hacer clic) o de los tipos de eventos que se especifican al recibir recomendaciones mediante el parámetro `$EVENT_TYPE`.

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

 La siguiente expresión excluye los elementos en los que un usuario ha hecho clic o ha transmitido en streaming.

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

La siguiente expresión solo incluye los elementos en los que el usuario ha hecho clic.

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

## Datos de elementos
<a name="item-filter-examples"></a>

La siguiente expresión excluye los elementos en función de una o varias categorías que especifique al obtener recomendaciones mediante el parámetro `$CATEGORY`.

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

La siguiente expresión incluye solo los elementos que son más baratos que el elemento actual (el elemento que especifica en la solicitud para recomendaciones de elementos relacionados) y que se han creado por el mismo estudio que el elemento actual. Puedes aplicar un filtro con el CurrentItem elemento solo si el caso de uso de tu dominio o tu receta personalizada generan recomendaciones de artículos relacionados.

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

 La siguiente expresión excluye elementos basados en varios niveles de campos categóricos. Excluye los elementos con un valor de CATEGORY\$1L1 `shoe` que *no* tienen un valor de CATEGORY\$1L2 de `boot`. 

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

La siguiente expresión incluye solo los elementos con un precio inferior o igual que el precio que especifica al recibir recomendaciones mediante el parámetro `$PRICE`.

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

La siguiente expresión solo incluye elementos que se han creado antes de una marca de tiempo (en tiempo Unix) que especifica al recibir recomendaciones.

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

La siguiente expresión solo incluye elementos con un género o géneros que especifica al recibir recomendaciones con el parámetro `$GENRE`.

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

La siguiente expresión solo incluye elementos que son más caros que el elemento actual *y* que se han creado más recientemente que la marca temporal (en tiempo Unix) que especifique. Puede utilizar este filtro si recibe recomendaciones de elementos relacionados y desea aplicar algunas reglas empresariales específicas basadas en el precio y en una fecha de creación variable.

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

## Datos de usuario
<a name="user-filter-examples"></a>

La siguiente expresión excluye los elementos de un género o géneros que especifique al recibir recomendaciones mediante el parámetro `$GENRE`, pero solo si la edad del usuario actual es igual al valor que especifique al obtener recomendaciones mediante el parámetro `$AGE`. 

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

La siguiente expresión solo incluye elementos con `watch` para CATEGORY\$1L1 y `luxury` para CATEGORY\$1L2, si la edad del usuario actual es mayor que `18`.

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

# Expresiones de filtro de segmentos de usuarios
<a name="user-segment-filter-examples"></a>

Las siguientes expresiones de filtro muestran cómo filtrar los segmentos de usuarios en función de los datos de interacciones de elementos y los metadatos de usuarios. Están organizados por tipo de datos.

 **Datos de usuario** 

La siguiente expresión de filtro incluye solo los usuarios con un estado de pertenencia igual al valor que especifique al obtener los segmentos de usuarios.

```
INCLUDE UserID WHERE Users.MEMBERSHIP_STATUS IN ($MEMBERSHIP)
```

La siguiente expresión de filtro excluye a los usuarios con un valor `AGE` inferior al que especifique al obtener segmentos de usuarios.

```
EXCLUDE UserID WHERE Users.AGE < $AGE
```

 **Datos de interacciones de elementos** 

La siguiente expresión de filtro solo incluye a los usuarios que han hecho clic en los elementos o los han valorado.

```
INCLUDE UserID WHERE Interactions.EVENT_TYPE IN ("click", "rating")
```

La siguiente expresión de filtro excluye usuarios de los segmentos de usuarios que tienen interacciones de elementos con un tipo de evento que especifique al obtener segmentos de usuarios.

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

# Ejemplos de expresiones de filtro de recomendaciones de acciones
<a name="action-recommendation-filter-examples"></a>

Los siguientes ejemplos de expresiones de filtro muestran cómo filtrar las acciones en función de los datos de interacciones de las acciones, los datos de las acciones y los datos de los usuarios. Están organizados por tipo de datos.

**Topics**
+ [

## Datos de interacciones de acción
](#action-interaction-filter-examples)
+ [

## Datos de acciones
](#action-filter-examples)
+ [

## Datos de usuario
](#user-action-filter-examples)

## Datos de interacciones de acción
<a name="action-interaction-filter-examples"></a>

La siguiente expresión de filtro incluye solo las acciones de las recomendaciones con las que el usuario ha interactuado, cuando estas interacciones tengan un tipo de evento que especifique al recibir recomendaciones. 

```
INCLUDE ActionID WHERE Action_Interactions.EVENT_TYPE IN ($EVENT_TYPE)
```

La siguiente expresión de filtro excluye las acciones que el usuario no haya realizado en función del tipo de evento.

```
EXCLUDE ActionID WHERE Action_Interactions.EVENT_TYPE IN ("NOT_TAKEN")
```

## Datos de acciones
<a name="action-filter-examples"></a>

La siguiente expresión excluye acciones en función de una o varias categorías que especifique al obtener recomendaciones mediante el parámetro `$CATEGORY`.

```
EXCLUDE ActionID WHERE Actions.CATEGORY IN ($CATEGORY)
```

La siguiente expresión solo incluye las acciones con un valor superior al que se especifica al recibir recomendaciones.

```
INCLUDE ActionID WHERE Actions.VALUE > ($VALUE)
```

## Datos de usuario
<a name="user-action-filter-examples"></a>

La siguiente expresión solo incluye acciones de los miembros premium si el usuario actual tiene una suscripción premium. 

```
INCLUDE ActionID WHERE Action.MEMBERSHIP_LEVEL IN ("Premium") IF CurrentUser.MEMBERSHIP = $PREMIUM
```

La siguiente expresión excluye acciones con un valor `VALUE` inferior al que especifica al recibir recomendaciones si el usuario actual es un miembro premium.

```
EXCLUDE ActionID WHERE Actions.VALUE < ($VALUE) IF CurrentUser.MEMBERSHIP = $PREMIUM
```

# Combinación de varias expresiones
<a name="multiple-expression-example"></a>

Para combinar varias expresiones juntas, utilice un separador vertical (`|`). Use una combinación de expresiones cuando quiera usar un solo filtro y filtrar los conjuntos de datos de elementos y de interacciones de elementos, o bien los conjuntos de datos de acciones e interacciones de acción. Cada expresión se evalúa primero de manera independiente y el resultado es la unión o la intersección de los dos resultados. Los siguientes ejemplos muestran cómo crear expresiones para conjuntos de datos de elementos y de interacciones de elementos, si bien se aplican las mismas reglas al trabajar con acciones e interacciones de acción. 

**Ejemplo de expresiones coincidentes**

 Si ambas expresiones utilizan `EXCLUDE` o `INCLUDE`, el resultado es la unión de los dos resultados de la siguiente manera (A y B son expresiones diferentes): 
+ `Exclude A | Exclude B` es igual a `Exclude result from A or result from B`
+ `Include A | Include B` es igual a `Include result from A or result from B`

En el ejemplo siguiente se muestra cómo utilizar dos expresiones que usan `INCLUDE`. La primera expresión solo incluye los elementos con una o varias categorías que especifica al obtener recomendaciones mediante el parámetro `$CATEGORY`. La segunda expresión incluye los elementos que el usuario ha marcado como `favorite`. Las recomendaciones solo incluirán los elementos con la categoría que especifique, junto con los elementos que el usuario haya marcado como favoritos.

```
INCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY) | INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("favorite")
```

**Ejemplo de INCLUDE y EXCLUDE**

 Si una o más expresiones utilizan `INCLUDE` y una expresión utiliza `EXCLUDE`, el resultado es la resta del resultado de la expresión `EXCLUDE` del resultado de la expresión `INCLUDE` de la siguiente manera (A, B, C y D son expresiones diferentes).
+ `Include A | Exclude B` es igual a `Include result from A - result from B`
+  `Include A | Include B | Exclude C | Exclude D` es igual a `Include (A or B) - (C or D)` 

El orden de las expresiones no importa: si la expresión EXCLUDE se encuentra antes que la expresión INCLUDE, el resultado es el mismo.

El siguiente ejemplo muestra cómo combinar una expresión `INCLUDE` y una expresión `EXCLUDE`. La primera expresión incluye solo los elementos de un género o géneros que especifica al recibir recomendaciones mediante el parámetro `$GENRE`. La segunda expresión excluye los elementos en los que el usuario ha hecho clic o ha transmitido en streaming. Las recomendaciones incluirán solo los elementos con un género que especifique y que no hayan recibido clics ni se hayan reproducido en streaming.

```
INCLUDE ItemID WHERE Items.GENRE IN ($GENRE) | EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")
```