

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.

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

 Use `filter` para obtener eventos de registro que coincidan con una o más condiciones. 

 ** Ejemplo: filtrar eventos de registro con una condición ** 

 El fragmento de código muestra un ejemplo de una consulta que devuelve todos los eventos de registro en los que el valor de `range` es mayor que ***3000***. La consulta limita los resultados a 20 eventos de registro y los ordena por `@timestamp` y en orden descendente. 

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

 ** Ejemplo: filtrar eventos de registro con más de una condición ** 

 Puede usar las palabras clave `and` y `or` para combinar más de una condición. 

 El fragmento de código muestra un ejemplo de una consulta que devuelve todos los eventos de registro en los que el valor de `range` es mayor que ***3000*** y el valor de `accountId` es igual que ***123456789012***. La consulta limita los resultados a 20 eventos de registro y los ordena por `@timestamp` y en orden descendente. 

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

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

Si ha creado índices de campos para un grupo de registros, puede aprovechar esos índices de campo para aumentar la eficacia de las consultas de `filter` y reducir el volumen digitalizado. Supongamos que se ha creado un índice de campo para `requestId`. Luego, cualquier consulta de CloudWatch Logs Insights sobre ese grupo de registros que incluya `filter requestId = value` o `filter requestId IN [value, value, ...]` intente omitir el procesamiento de eventos de registro que se sepa que no incluyen el campo indexado. Al intentar analizar solo los eventos de registro que se sabe que contienen ese campo indexado, se puede reducir el volumen de análisis y la consulta es más rápida.

Para obtener más información sobre los índices de campo y cómo crearlos, consulte [Creación de índices de campo para mejorar el rendimiento de las consultas y reducir el volumen de análisis](CloudWatchLogs-Field-Indexing.md).

**importante**  
Solo las consultas que incluyan `filter fieldName =...` y `filter fieldName IN...` se verán beneficiadas con las mejores del índice de campo. Las consultas que incluyen `filter fieldName like` no emplean índices y siempre analizan todos los eventos de registros en los grupos de registros selectos.

**Ejemplo: búsqueda de eventos de registro relacionados con un identificador de solicitud determinado mediante índices** 

 En este ejemplo se supone que ha creado un índice de campo en `requestId`. En el caso de los grupos de registros que utilizan este índice de campos, la consulta aprovechará los índices de campo para intentar analizar la menor cantidad posible de eventos de registro con los que buscar eventos con `requestId` y un valor de `123456` 

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

## Coincidencias y expresiones regulares en el comando de filtro
<a name="CWL_QuerySyntax-regex"></a>

El comando de filtro admite el uso de expresiones regulares. Puede utilizar los siguientes operadores de comparación (`=`, `!=`, `<`, `<=`, `>`, `>=`) y operadores booleanos (`and`, `or` y `not`).

Puede usar la palabra clave `in` para probar si hay suscripción configurada y verificar si hay elementos en una matriz. Para comprobar los elementos de una matriz, coloque los elementos después de `in`. Puede utilizar los operadores booleanos `not`, con `in`. Puede crear consultas que utilicen `in` para devolver eventos de registro en los que los campos son coincidencias de cadenas. Los campos deben ser cadenas completas. Por ejemplo, el siguiente fragmento de código muestra una consulta que utiliza `in` para devolver eventos de registro donde el campo `logGroup` es la cadena completa `example_group`.

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

Puede usar las frases de palabras clave `like` y `not like` para que coincidan con las subcadenas. Puede utilizar el operador de expresión regular `=~` para que coincidan con las subcadenas. Para hacer coincidir una subcadena con `like` y `not like`, encierre la subcadena que desea buscar entre comillas dobles o simples. Puede utilizar patrones de expresión regular con `like` y `not like`. Para hacer coincidir una subcadena con el operador de expresiones regulares, encierre la subcadena que desea buscar entre barras diagonales. Los siguientes ejemplos contienen fragmentos de código que muestran cómo se pueden hacer coincidir las subcadenas mediante el comando `filter`.

**Ejemplos: hacer coincidir subcadenas**

 Los siguientes ejemplos devuelven los eventos de registro en que `f1` contiene la palabra ***Exception*** (Excepción). Los tres ejemplos distinguen entre mayúsculas y minúsculas. 

El primer ejemplo hace coincidir una subcadena con `like`. 

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

 El segundo ejemplo hace coincidir una subcadena con `like` y un patrón de expresiones regulares. 

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

 El tercer ejemplo hace coincidir una subcadena con una expresión regular. 

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

**Ejemplo: hacer coincidir subcadenas con comodines**

 Puede utilizar el símbolo de punto (`.`) como comodín en expresiones regulares para que coincidan con las subcadenas. En el siguiente ejemplo, la consulta devuelve coincidencias en las que el valor de `f1` comienza con la cadena `ServiceLog`. 

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

 Puede colocar un punto antes del símbolo de punto (`.*`) para crear un cuantificador expansivo que devuelva tantas coincidencias como sea posible. Por ejemplo, la siguiente consulta devuelve coincidencias en las que el valor de `f1` no solo comienza con la cadena `ServiceLog`, sino que incluye además la cadena `ServiceLog`. 

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

 Las posibles coincidencias pueden tener el siguiente formato: 
+  `ServiceLogSampleApiLogGroup` 
+  `SampleApiLogGroupServiceLog` 

**Ejemplo: excluir subcadenas de coincidencias**

En el siguiente ejemplo, se muestra una consulta que devuelve eventos de registro donde `f1` no contiene la palabra ***Exception*** (Excepción). El ejemplo distingue mayúsculas de minúsculas.

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

**Ejemplo: hacer coincidir subcadenas con patrones que no distinguen mayúsculas de minúsculas**

Puede hacer coincidir las subcadenas que no distinguen mayúsculas de minúsculas con `like` y expresiones regulares. Coloque el siguiente parámetro (**?i**) antes de la subcadena que desea buscar. En el siguiente ejemplo, se muestra una consulta que devuelve eventos de registro donde `f1` contiene la palabra ***Exception*** o ***exception*** (Excepción o excepción).

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