

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Expressões de filtro
<a name="filter-expressions"></a>

Para configurar filtros, use uma *expressão de filtro* formatada corretamente. As expressões de filtro são compostas por conjuntos de dados e identificadores de campo no formato `dataset`.`field`, junto com operadores lógicos, palavras-chave e valores. Para valores, você pode especificar valores fixos ou adicionar parâmetros de espaço reservado para definir os critérios de filtro ao receber recomendações.

É possível usar expressões para filtrar itens, usuários ou ações com base nos dados dos seguintes conjuntos de dados:
+  **Interações com itens**: é possível usar expressões de filtro para incluir ou excluir itens ou usuários com base nos dados das interações. Por exemplo, você pode excluir itens nos quais um usuário já clicou (para recomendações de itens) ou incluir somente usuários que avaliaram itens (para a fórmula Item-Affinity). Para todos os tipos de fórmula, você pode filtrar somente com base no tipo de evento. Não é possível filtrar com base em outros metadados de interação, como metadados contextuais. Não é possível usar filtros de interações com itens usando [Fórmula Item-Attribute-Affinity](item-attribute-affinity-recipe.md). 

  O Amazon Personalize considera até 100 das interações mais recentes por usuário por tipo de evento. Esta é uma cota ajustável. Você pode solicitar um aumento de cotas usando o[ console do Service Quotas](https://console.aws.amazon.com/servicequotas/). Se você não importar interações com itens para um usuário por três meses, seus filtros deixarão de considerar os dados históricos do usuário. Para considerar esses dados, importe todo o histórico de eventos do usuário novamente. 
+  **Interações com ações**: use expressões de filtro para incluir ou excluir ações com que um usuário tenha interagido de acordo com o tipo do evento. Por exemplo, você pode excluir as ações que um usuário já realizou. Você não pode filtrar baseando-se em outros metadados de interação com ações. 

  O Amazon Personalize utiliza até trezentas interações mais recentes por usuário por tipo de evento. Esta é uma cota ajustável. Você pode solicitar um aumento de cotas usando o [console do Service Quotas](https://console.aws.amazon.com/servicequotas/). 
+  **Itens**: use expressões de filtro para incluir ou excluir itens com base nas condições específicas do item. Não é possível usar filtros para incluir ou excluir itens com base em metadados de itens textuais não estruturados, como descrições de produtos. Se seu caso de uso de domínio ou fórmula personalizada gerar recomendações de itens relacionados, como a fórmula Similar-Items ou o caso de uso do domínio *More Like X*, você poderá usar expressões de filtro para incluir ou excluir itens com base nas propriedades especificadas na sua solicitação de recomendação. 
+  **Usuários**: para obter recomendações de *itens* e *ações*, se você tiver um conjunto de dados de usuários, poderá excluir ou incluir itens ou ações com base em um `CurrentUser`. Para obter recomendações personalizadas, itens populares e recomendações de ações, esse é o usuário para o qual você está obtendo recomendações. Para itens relacionados, esse é um usuário opcional que pode ser especificado na solicitação de recomendação. 

  Para *segmentos de usuários*, é possível usar expressões de filtro para incluir ou excluir usuários dos segmentos com base em atributos, como `Users.MEMBERSHIP_STATUS`. 
+  **Ações**: use expressões de filtro para incluir ou excluir ações com base nas condições específicas da ação. O Amazon Personalize exclui automaticamente ações com base em dados `Action expiration timestamp` e `Repeat frequency`. Não é possível criar filtros personalizados adicionais que filtrem com base nesses dados. 

Para obter uma lista completa de elementos de expressão de filtro, consulte [Filtrar elementos de expressão](creating-filter-expressions.md#filter-expression-elements). Para obter exemplos de expressões de filtro, consulte [Exemplos de expressões de filtro](filter-expression-examples.md). 

**Topics**
+ [Diretrizes e requisitos](filter-expression-guidelines-requirements.md)
+ [Estrutura e elementos das expressões de filtro](creating-filter-expressions.md)
+ [Exemplos de expressões de filtro](filter-expression-examples.md)

# Diretrizes e requisitos
<a name="filter-expression-guidelines-requirements"></a>

 Ao criar uma expressão de filtro, observe os seguintes requisitos e diretrizes: 
+ Não é possível usar filtros para incluir ou excluir itens com base em metadados de itens textuais não estruturados, como descrições de produtos.
+ Se você estiver considerando os dados de interações com itens ou ações, só poderá ter o tipo de evento como base. Não é possível filtrar com base em outros metadados de interação, como metadados contextuais.
+ O Amazon Personalize ignora maiúsculas e minúsculas somente ao combinar tipos de eventos.
+ Não é possível usar conjuntos de dados de itens e interação com itens em uma expressão. Para criar um filtro que filtre por conjuntos de dados de interações e, em seguida, por conjuntos de dados de item (ou o contrário), você deve encadear duas ou mais expressões. Para obter mais informações, consulte [Como combinar várias expressões](multiple-expression-example.md). 
+ Não é possível usar conjuntos de dados de ações e de interação com itens em uma expressão. Para criar um filtro que atue em conjuntos de dados de interação com itens e, depois, em conjuntos de dados de ações (ou o contrário), é necessário encadear duas ou mais expressões. Para obter mais informações, consulte [Como combinar várias expressões](multiple-expression-example.md). 
+ Não é possível usar filtros de interações com itens usando [Fórmula Item-Attribute-Affinity](item-attribute-affinity-recipe.md). 
+  Não é possível criar expressões de filtro que filtrem usando valores com um tipo booleano no seu esquema. Para filtrar com base em valores booleanos, use um esquema com um campo do tipo *String* e use os valores `"True"` e `"False"` nos seus dados. Outra opção é usar o tipo *int* ou *long* e valores `0` e `1`. 
+  O número máximo de campos de conjunto de dados distintos para um filtro, em uma expressão ou em várias expressões encadeadas, é **10**. O número máximo de campos de conjuntos de dados distintos em todos os filtros em um grupo de conjuntos de dados é **20**. 
+  Você pode aplicar um filtro com o CurrentItem elemento somente se seu caso de uso de domínio ou receita personalizada gerar recomendações de itens relacionados, como a receita de itens semelhantes ou o caso de uso do domínio *More Like X.* 
+ Não é possível usar parâmetros de espaço reservado em uma expressão de filtro que utiliza o operador NOT\$1IN. Em vez disso, use o operador IN e a Ação oposta. Por exemplo, use Incluir em vez de Excluir (ou o contrário).
+ Não é possível criar filtros que atuem com base em dados `Action expiration timestamp` e `Repeat frequency`. O Amazon Personalize filtra automaticamente as recomendações de ações com base nesses dados.

# Estrutura e elementos das expressões de filtro
<a name="creating-filter-expressions"></a>

Esta seção inclui informações sobre a estrutura de expressões de filtro e os respectivos elementos.

**Topics**
+ [Estrutura das expressões de filtro](#filter-expression-structure)
+ [Filtrar elementos de expressão](#filter-expression-elements)

## Estrutura das expressões de filtro
<a name="filter-expression-structure"></a>

A estrutura geral de uma expressão de filtro é a seguinte: 

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

Você pode criar manualmente expressões de filtro ou obter ajuda com a sintaxe e a estrutura da expressão usando o [construtor de expressões](filter-real-time.md#using-filter-expression-builder) no console. 

## Filtrar elementos de expressão
<a name="filter-expression-elements"></a>

Use os seguintes elementos para criar expressões de filtro:

**INCLUIR ou EXCLUIR**  
Use `INCLUDE` para limitar as recomendações somente aos itens que atendam aos critérios do filtro *OU* use `EXCLUDE` para remover todos os itens que atendem aos critérios do filtro.

**ItemID/ActionID/UserID**  
Use um desses elementos após o elemento `INCLUDE` ou `EXCLUDE`. O elemento usado está condicionado ao tipo de dados filtrados, ou seja, itens (para recomendações de itens), ações (para recomendações de ações) ou usuários (para segmentos de usuários). 

**WHERE**  
Use `WHERE` para conferir as condições de itens, ações ou usuários. É necessário usar o elemento `WHERE` após `ItemID`, `ActionID` ou `UserID`. 

**E/OU**  
Para encadear várias condições na mesma expressão de filtro, use `AND` ou `OR`. Condições encadeadas com `AND` ou `OR` podem afetar os campos do conjunto de dados usado na primeira condição.

**Dataset.field**  
Forneça o conjunto de dados e o campo de metadados pelos quais você deseja filtrar as recomendações no formato `dataset`.`field`. Por exemplo, para filtrar recomendações de itens com base no campo de gêneros no conjunto de dados de itens, você usará Items.genres na expressão de filtro. 

**Condição IF**  
Use uma condição `IF` *somente* para verificar as condições de `CurrentUser` e somente *uma vez* no final de uma expressão. No entanto, você pode estender uma condição `IF` usando `AND`. 

**CurrentUser.atributo**  
 Para filtrar as recomendações de itens com base no usuário para o qual você está recebendo recomendações, *somente* em uma condição IF, use `CurrentUser` e forneça o campo do usuário. Por exemplo, .`CurrentUser.AGE` 

**CurrentItem.atributo**  
 Somente para fórmulas de itens relacionados e casos de uso, use `CurrentItem`.`attribute` para filtrar itens com base em um atributo do item especificado na sua solicitação de recomendações de itens relacionados. Por exemplo, `CurrentItem.GENRE` ou `CurrentItem.PRICE`.   
 Você pode aplicar um filtro com o CurrentItem elemento somente se seu caso de uso de domínio ou receita personalizada gerar recomendações de itens relacionados, como a receita de itens semelhantes ou o caso de uso do domínio *More Like X.* Na primeira vez que você cria um filtro com um elemento `CurrentItem`, a criação do filtro pode levar alguns minutos. Se você usa AWS KMS para criptografia, a criação do filtro pode levar até 15 minutos. 

**IN/NOT IN**  
Use `IN` ou `NOT IN` como operadores de comparação para filtrar com base na correspondência (ou não correspondência) de um ou mais valores de string. O Amazon Personalize filtra somente em strings exatas.

**Operadores de comparação**  
Use operadores =, <, <=, >, >= e \$1= para testar dados numéricos, incluindo dados transmitidos em um parâmetro de espaço reservado, para verificar a igualdade.

**Caractere asterisco (\$1)**  
Use `*` para incluir ou excluir interações de todos os tipos. Use `*` *somente* para expressões de filtro que usam o campo `EVENT_TYPE` de um conjunto de dados de `Interactions`.

**Separador de pipes**  
Use o separador de pipes (`|`) para encadear várias expressões. Para obter mais informações, consulte [Como combinar várias expressões](multiple-expression-example.md).

**Parâmetros**  
Para expressões que usam operadores de comparação ou o operador `IN`, use o cifrão (\$1) e um nome de parâmetro para adicionar um parâmetro de espaço reservado como um valor. Por exemplo, .`$GENRES` Neste exemplo, ao receber recomendações, você fornece o gênero ou gêneros pelos quais filtrar.  
Você define um nome de parâmetro ao adicioná-lo a uma expressão. O nome do parâmetro não precisa corresponder ao nome do campo. Recomendamos que você use um nome de parâmetro semelhante ao nome do campo e que seja fácil de lembrar. Você usa o nome do parâmetro (com distinção entre maiúsculas e minúsculas) ao aplicar o filtro às solicitações de recomendações. Para ver um exemplo que mostra como aplicar um filtro com parâmetros de espaço reservado ao usar os AWS SDKS, consulte. [Como aplicar um filtro (AWS SDKs)](filter-real-time.md#applying-filter-sdk)

# Exemplos de expressões de filtro
<a name="filter-expression-examples"></a>

 Use as expressões de filtro nas seções a seguir para aprender a criar suas próprias expressões. 

**Topics**
+ [Exemplos de expressão de filtro de recomendação de item](item-recommendation-filter-examples.md)
+ [Expressões de filtro de segmentos de usuários](user-segment-filter-examples.md)
+ [Exemplos de expressão de filtro de recomendação de ação](action-recommendation-filter-examples.md)
+ [Como combinar várias expressões](multiple-expression-example.md)

# Exemplos de expressão de filtro de recomendação de item
<a name="item-recommendation-filter-examples"></a>

As expressões de filtro a seguir mostram como filtrar recomendações de itens com base em interações com itens, metadados de itens e metadados do usuário. Elas são organizadas por tipo de dados.

**Topics**
+ [Dados de interações com itens](#item-interaction-filter-examples)
+ [Dados de itens](#item-filter-examples)
+ [Dados do usuário](#user-filter-examples)

## Dados de interações com itens
<a name="item-interaction-filter-examples"></a>

A expressão a seguir exclui itens com base em um tipo de evento (como click) ou tipos de eventos que você especifica ao receber recomendações usando o parâmetro `$EVENT_TYPE`.

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

 A expressão a seguir exclui itens em que um usuário clicou ou que transmitiu.

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

A expressão a seguir inclui somente itens em que o usuário clicou.

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

## Dados de itens
<a name="item-filter-examples"></a>

A expressão a seguir exclui itens com base em categoria(s) que você especifica ao receber recomendações usando o parâmetro `$CATEGORY`.

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

A expressão a seguir inclui somente itens que são mais baratos do que o atual (o especificado na solicitação de recomendações de itens relacionados) e criados pelo mesmo estúdio do item atual. Você pode aplicar um filtro com o CurrentItem elemento somente se seu caso de uso de domínio ou receita personalizada gerar recomendações de itens relacionados.

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

 A expressão a seguir exclui itens com base em vários níveis de campos categóricos. Ela exclui itens com um valor CATEGORY\$1L1 de `shoe` que *não têm* um valor CATEGORY\$1L2 igual a `boot`. 

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

A expressão a seguir inclui somente itens com um preço menor ou igual ao preço que você especifica ao receber recomendações usando o parâmetro `$PRICE`.

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

A expressão a seguir inclui somente itens que foram criados antes de um carimbo de data/hora (em Unix epoch) que você especifica ao receber recomendações.

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

A expressão a seguir inclui somente itens com o(s) gênero(s) que você especifica ao receber recomendações usando o parâmetro `$GENRE`.

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

A expressão a seguir inclui somente itens que são mais caros do que o atual *e* criados mais recentemente do que um carimbo de data/hora (em Unix epoch) que você especificar. Você poderá usar esse filtro se estiver recebendo recomendações de itens relacionados e quiser aplicar algumas regras comerciais específicas com base no preço e em uma data de criação variável.

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

## Dados do usuário
<a name="user-filter-examples"></a>

A expressão a seguir exclui itens com o(s) gênero(s) que você especifica ao receber recomendações usando o parâmetro `$GENRE`, mas somente se a idade atual do usuário for igual ao valor que você especifica ao receber recomendações usando o parâmetro `$AGE`. 

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

A expressão a seguir incluirá só itens com `watch` para CATEGORY\$1L1 e `luxury` para CATEGORY\$1L2 se a idade atual do usuário for maior que `18`.

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

# Expressões de filtro de segmentos de usuários
<a name="user-segment-filter-examples"></a>

As expressões de filtro a seguir mostram como filtrar segmentos de usuários com base nos dados de interações com itens e nos metadados do usuário. Elas são organizadas por tipo de dados.

 **Dados do usuário** 

A expressão de filtro a seguir inclui somente usuários com um status de associação igual ao valor que você especifica ao obter segmentos de usuários.

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

A expressão de filtro a seguir exclui usuários com `AGE` menor que um valor que você especifica ao obter segmentos de usuários.

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

 **Dados de interações com itens** 

A expressão de filtro a seguir inclui somente usuários que clicaram ou classificaram itens.

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

A expressão de filtro a seguir exclui usuários de segmentos que têm interações com itens com um tipo de evento especificado ao obter segmentos de usuários.

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

# Exemplos de expressão de filtro de recomendação de ação
<a name="action-recommendation-filter-examples"></a>

Os exemplos de expressão de filtro a seguir mostram como filtrar ações com base em dados de interações com ações, dados de ações e dados do usuário. Elas são organizadas por tipo de dados.

**Topics**
+ [Dados de interações com ações](#action-interaction-filter-examples)
+ [Dados de ações](#action-filter-examples)
+ [Dados do usuário](#user-action-filter-examples)

## Dados de interações com ações
<a name="action-interaction-filter-examples"></a>

A expressão de filtro a seguir inclui somente ações nas recomendações com as quais o usuário interagiu, quando essas interações têm um tipo de evento especificado ao obter recomendações. 

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

A expressão de filtro a seguir exclui ações que o usuário não realizou com base no tipo de evento.

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

## Dados de ações
<a name="action-filter-examples"></a>

A expressão a seguir exclui ações com base em categorias especificadas ao obter recomendações usando o parâmetro `$CATEGORY`.

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

A expressão a seguir inclui somente ações com um valor maior que o especificado ao obter recomendações.

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

## Dados do usuário
<a name="user-action-filter-examples"></a>

Se o usuário atual tiver uma assinatura premium, a expressão a seguir incluirá somente ações para membros premium. 

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

Se o usuário atual for um membro premium, a expressão a seguir excluirá ações com um `VALUE` inferior ao valor especificado ao obter recomendações.

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

# Como combinar várias expressões
<a name="multiple-expression-example"></a>

Para combinar várias expressões, você usa um separador de pipes (`|`). Use uma combinação de expressões quando quiser utilizar um único filtro e filtrar conjuntos de dados de itens e de interações com itens ou conjuntos de dados de ações e interações com ações. Cada expressão é avaliada primeiro de forma independente, e o resultado é a união ou a interseção dos dois resultados. Os exemplos a seguir mostram como criar expressões para conjuntos de dados de itens e interações com itens, mas as mesmas regras se aplicam ao trabalhar com ações e interações com ações. 

**Exemplo de expressões de correspondência**

 Se ambas as expressões usarem `EXCLUDE` ou `INCLUDE`, o resultado será a união dos dois resultados da seguinte forma (A e B são expressões diferentes): 
+ `Exclude A | Exclude B` é igual a `Exclude result from A or result from B`
+ `Include A | Include B` é igual a `Include result from A or result from B`

O exemplo a seguir mostra como combinar duas expressões que usam `INCLUDE`. A primeira expressão inclui somente itens com categoria(s) que você especifica ao receber recomendações usando o parâmetro `$CATEGORY`. A segunda expressão inclui itens que o usuário marcou como `favorite`. As recomendações incluirão somente itens com a categoria que você especificar junto com itens que o usuário marcou como favoritos.

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

**Exemplo de INCLUDE e EXCLUDE**

 Se uma ou mais expressões usarem `INCLUDE` e mais uma expressão usar `EXCLUDE`, o resultado será a subtração do resultado da expressão `EXCLUDE` do resultado da expressão `INCLUDE` da seguinte forma (A, B, C e D são expressões diferentes).
+ `Include A | Exclude B` é igual a `Include result from A - result from B`
+  `Include A | Include B | Exclude C | Exclude D` é igual a `Include (A or B) - (C or D)` 

A ordem das expressões não importa: se a expressão EXCLUDE vier antes da expressão INCLUDE, o resultado será o mesmo.

O exemplo a seguir mostra como combinar uma expressão `INCLUDE` e uma expressão `EXCLUDE`. A primeira expressão inclui somente itens com gênero(s) que você especifica ao receber recomendações usando o parâmetro `$GENRE`. A segunda expressão exclui itens em que o usuário clicou ou que transmitiu. As recomendações incluirão somente itens com um gênero especificado e que não tenham sido clicados ou transmitidos.

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