

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á.

# filtrar
<a name="CWL_QuerySyntax-Filter"></a>

 Use `filter` para obter eventos de log que correspondam a uma ou mais condições. 

 **Exemplo: Filtrar eventos de log usando uma condição** 

 O trecho de código mostra um exemplo de uma consulta que retorna todos os eventos de log em que o valor de `range` é maior do que ***3000***. A consulta limita os resultados a 20 eventos de log e classifica os eventos de registros por `@timestamp` e em ordem decrescente. 

```
fields @timestamp, @message
| filter (range>3000)
| sort @timestamp desc
| limit 20
```

 **Exemplo: Filtrar eventos de log usando mais de uma condição** 

 Você pode usar as palavras-chave `and` e `or` para combinar mais de uma condição. 

 O trecho de código mostra um exemplo de consulta que retorna todos os eventos de log em que o valor de `range` é maior do que ***3.000*** e o valor de `accountId` é igual a ***123.456.789.012***. A consulta limita os resultados a 20 eventos de log e classifica os eventos de registros por `@timestamp` e em ordem decrescente. 

```
fields @timestamp, @message
| filter (range>3000 and accountId=123456789012)
| sort @timestamp desc
| limit 20
```

## Campos indexados e o comando de filtro
<a name="CWL_QuerySyntax-index"></a>

Se você criou índices de campo para um grupo de logs, pode aproveitar esses índices de campo para tornar suas consultas no `filter` mais eficientes e reduzir o volume digitalizado. Por exemplo, suponha que você tenha criado um índice de campo para `requestId`. Em seguida, qualquer consulta do CloudWatch Logs Insights nesse grupo de registros que `filter requestId IN [value, value, ...]` inclua `filter requestId = value` ou tente ignorar o processamento de eventos de log que se sabe que não incluem o campo indexado. Ao tentar verificar somente os eventos de log conhecidos por conter esse campo indexado, o volume de escaneamento pode ser reduzido, e a consulta é mais rápida.

Para obter mais informações sobre os índices de campo e como criá-los, consulte [Crie índices de campo para melhorar o desempenho da consulta e reduzir o volume de escaneamento](CloudWatchLogs-Field-Indexing.md).

**Importante**  
Somente consultas com `filter fieldName =...` e `filter fieldName IN...` se beneficiarão das melhorias no índice de campo. As consultas com `filter fieldName like` não usam índices e sempre examinam todos os eventos de logs nos grupos de logs selecionados.

** Exemplo: encontre eventos de logs relacionados a um determinado ID de solicitação usando índices ** 

 Este exemplo pressupõe que você criou um índice de campo no `requestId`. Para grupos de logs que usam esse índice de campo, a consulta aproveitará os índices de campo para tentar verificar a menor quantidade de eventos de logs e encontrar eventos com `requestId` e um valor de `123456` 

```
fields @timestamp, @message
| filter requestId = "1234656"
| limit 20
```

## Correspondências e expressões regulares no comando de filtro
<a name="CWL_QuerySyntax-regex"></a>

O comando filtrar é compatível com o uso de expressões regulares. Você pode usar os seguintes operadores de comparação (`=`, `!=`, `<`, `<=`, `>`, `>=`) e operadores boolianos (`and`, `or` e `not`).

Você pode usar a palavra-chave `in` para testar a associação do conjunto e verificar se há elementos em uma matriz. Para verificar elementos em uma matriz, coloque a matriz após `in`. É possível usar o operador booliano `not` com `in`. Você pode criar consultas que usam `in` para retornar eventos de log nos quais os campos são correspondências de string. Os campos devem ser strings completas. Por exemplo, o trecho de código a seguir mostra uma consulta que usa `in` para retornar eventos de log nos quais o campo `logGroup` é a string `example_group` completa.

```
fields @timestamp, @message
| filter logGroup in ["example_group"]
```

Você pode usar as frases de palavras-chave `like` e `not like` para combinar substrings. Você pode usar o operador de expressão regular `=~` para combinar substrings. Para fazer a correspondência de uma substring com `like` e `not like`, envolva entre aspas duplas ou simples a substring que deseja corresponder. Você pode usar padrões de expressão regular com `like` e `not like`. Para fazer a correspondência de uma substritng com o operador de expressão regular, envolva entre barras a substring a ser correspondida. Os exemplos a seguir contêm trechos de código que mostram como você pode fazer a correspondências de substrings usando o comando `filter`.

**Exemplos: correspondência de substrings**

 Os exemplos a seguir retornam eventos de log quando `f1` contém a palavra ***Exception***. Os três exemplos fazem distinção entre maiúsculas e minúsculas. 

O primeiro exemplo faz a correspondência de uma substring com `like`. 

```
fields f1, f2, f3 
| filter f1 like "Exception"
```

 O segundo exemplo faz a correspondência de uma substring com `like` e um padrão de expressão regular. 

```
fields f1, f2, f3 
| filter f1 like /Exception/
```

 O terceiro exemplo faz a correspondência de uma substring com uma expressão regular. 

```
fields f1, f2, f3 
| filter f1 =~ /Exception/
```

**Exemplo: fazer a correspondência de substrings com curingas**

 Você pode usar o símbolo de ponto (`.`) como um curinga em expressões regulares para fazer a correspondência com substrings. No exemplo a seguir, a consulta retorna correspondências em que o valor de `f1` começa com a string `ServiceLog`. 

```
fields f1, f2, f3
| filter f1 like /ServiceLog./
```

 Você pode colocar um símbolo de asterisco depois do ponto (`.*`) para criar um quantificador ganancioso que retorna o maior número possível de correspondências. No exemplo a seguir, a consulta retorna correspondências em que o valor de `f1` não somente começa com a string `ServiceLog`, mas também inclui a string `ServiceLog`. 

```
fields f1, f2, f3
| filter f1 like /ServiceLog.*/
```

 As correspondências possíveis podem ser formatadas da seguinte forma: 
+  `ServiceLogSampleApiLogGroup` 
+  `SampleApiLogGroupServiceLog` 

**Exemplo: excluir substrings das correspondências**

O exemplo a seguir mostra uma consulta que retorna eventos de log quando `f1` não contém a palavra ***Exception***. O exemplo diferencia minúsculas e maiúsculas.

```
fields f1, f2, f3 
| filter f1 not like "Exception"
```

**Exemplo: fazer a correspondência de subcadeias de caracteres com padrões que não diferenciam maiúsculas e minúsculas**

Você pode fazer a correspondência de subcadeias de caracteres que não diferenciam minúsculas e maiúsculas com `like` e expressões regulares. Coloque o seguinte parâmetro (**?i**) antes da substring a ser correspondida. O exemplo a seguir mostra uma consulta que retorna eventos de log quando `f1` contém a palavra ***Exception*** ou ***exception***.

```
fields f1, f2, f3 
| filter f1 like /(?i)Exception/
```