Sintaxis de filtro
Para limitar los resultados que se devuelven en una solicitud de recuperación de la API ( HTTP GET), la mayoría de los puntos finales de la API que devuelven listas de recursos admiten el parámetro IBM® QRadar® API que devuelven listas de recursos admiten el parámetro filter .
La sintaxis del parámetro filter es coherente para todos los puntos finales que lo soportan. Consulte la documentación del punto final para determinar si el parámetro de filtro se aplica a él. Las limitaciones de la sintaxis del filtro se incluyen en la descripción de ese punto final. Los parámetros de consulta deben estar codificados en doble URL antes de ser enviados.
Operadores de comparación
La tabla de operadores de comparación de filtros describe los operadores de comparación que puede utilizar como parte del parámetro de filtro.
| Operador | Descripción | Ejemplo de sintaxis de filtro |
|---|---|---|
= |
Igualdad entre el identificador y el valor especificado devuelto. | Para buscar delitos donde status=CLOSED, utilice la sintaxis siguiente:
|
> |
El identificador es mayor que el valor especificado. | Para buscar delitos donde credibility > 3, utilice la sintaxis siguiente:
|
< |
El identificador es menor que el valor especificado. | Para buscar delitos donde magnitude < 9, utilice la sintaxis siguiente:
|
<= |
El identificador es menor o igual que el valor especificado. | Para buscar delitos donde id <= 1004, utilice la sintaxis siguiente:
|
| >= | El identificador es mayor o igual que el valor especificado. | Para buscar delitos donde
|
|
El identificador no es igual al valor especificado. | Los ejemplos siguientes filtran todos los ID que no son iguales a 5:
|
in |
El identificador es igual al menos a uno de los valores especificados en la lista. | Sintaxis: id in (1001,1111,1200)Ejemplo: |
not in |
El identificador no es igual a ninguno de los valores especificados en la lista. | Sintaxis: id not in (1001,1002,1003):Ejemplo: |
between … and … |
El identificador está entre dos valores especificados. | Sintaxis: id between 0 and 3:Ejemplo: |
not between … and … |
El identificador no está entre dos valores especificados. | Sintaxis: id not between 30 and 31:Ejemplo: |
is null |
El identificador es nulo. | Sintaxis: assigned_to is null:Ejemplo: |
is not null |
El identificador no es nulo. | Sintaxis: assigned_to is not null:Ejemplo: |
Valores nulos y operadores de comparación
Cuando el campo por el que ha filtrado tiene un valor 'null', los operadores de comparación se comportan de las siguientes maneras:
La mejor forma de probar los valores nulos es utilizar los operadores "is null" o "is not null".
Operadores lógicos
Utilice los operadores lógicos OR, ANDy NOT para realizar operaciones lógicas en subexpresiones. La tabla siguiente proporciona ejemplos de cómo utilizar operadores lógicos en filtros.
| Operador | Descripción | Ejemplo |
|---|---|---|
or |
Realiza una operación OR lógica en las dos subexpresiones. Las subexpresiones pueden ser nodos de comparación u otros nodos lógicos. | assigned_to no es nulo O id =
111:
|
and |
Realiza una operación AND lógica en las dos subexpresiones. Las subexpresiones pueden ser nodos de comparación u otros nodos lógicos. | assigned_to no es nulo AND id =
111:
|
not |
Realiza una operación NOT lógica en la subexpresión. | protected =true and not id in
(111,112,113)
|
Especificación de campos JSON para comparaciones
En la tabla siguiente se explica cómo especificar campos JSON para utilizarlos con operadores de comparación en filtros.
| Ejemplo de campo JSON | Descripción | Ejemplo |
|---|---|---|
|
Cuando se aplica un filtro a un campo directamente en el objeto que se devuelve, el campo se especifica por nombre. |
|
|
Cuando aplique un filtro a un campo anidado dentro de un subobjeto, utilice corchetes para especificar el campo interno. |
|
|
Para tipos JSON simples en los que no existe ninguna etiqueta de campo, como series, números o booleano, utilice el operador . . |
|
Especificación de valores de serie y numéricos en filtros
Cuando filtra series que tienen valores con caracteres no alfanuméricos, debe envolver la serie de destino entre comillas. Cuando filtra valores numéricos, los valores numéricos pueden seguir estas condiciones:
- Empiece con un signo + o-inicial.
- Contener o empezar con una coma decimal.
- Incluya un exponente utilizando la notación e.
Filtrado de objetos complejos utilizando el operador CONTAINS
Los objetos complejos se filtran utilizando el operador CONTAINS. Utilice el operador CONTAINS para probar el contenido de listas o correlaciones. En el lado izquierdo del operador, es un identificador que está en el formato estándar, por ejemplo x (y (z)). El identificador debe hacer referencia a un elemento que sea una lista, correlación o colección. En el lado derecho del operador hay una expresión que especifica cómo deben coincidir los objetos de la lista. Existen dos casos de uso básicos para utilizar el operador CONTAINS:
- La lista que se examina contiene elementos simples como series o números.
- La lista contiene objetos complejos.
- Listas que contienen tipos simples
- Para listas que contienen tipos simples como series o números, la expresión es un valor del mismo tipo. Para comparaciones simples, no se necesitan corchetes.
- Listas que contienen objetos complejos
Para listas que contienen objetos complejos, la expresión es una expresión de filtro completa para los objetos de la lista. Esta expresión de subfiltro utiliza la misma sintaxis que cualquier otro filtro. Puede utilizar cualquier operador del subfiltro para probar sublistas dentro de la lista original. Los identificadores de esta expresión son relativos a los objetos de la lista en los que opera el operador CONTAINS. En expresiones de subfiltro complejas, se necesitan corchetes.
El operador LIKE
Utilice el operador LIKE para recuperar coincidencias de serie parciales.
El operador LIKE utiliza el formato siguiente: identifier like "expression". Las comillas alrededor de la expresión son obligatorias. Se da soporte a las comillas simples y dobles. La palabra clave LIKE distingue entre mayúsculas y minúsculas.
Se da soporte a los siguientes caracteres comodín. Si utiliza caracteres comodín en una serie, debe escaparlos.
| Carácter comodín | Descripción |
|---|---|
| % | Coincide con una serie de cero o más caracteres |
| _ | Coincide con cualquier carácter único |
GET /path/to/api
[
{
"hostname": "server.domain1"
},
{
"hostname": "server.domain2"
},
{
"hostname": "SERVER.domain"
},
{
"hostname": "server.DOMAIN"
}
]
Puede combinar los caracteres comodín en la misma expresión. Por ejemplo, para buscar servidores en domain1 o domain2, utilice la expresión: hostname
LIKE "%.domain_".
GET /path/to/api?filter=hostname%20LIKE%20%22%25.domain_%22
[
{
"hostname": "server.domain1"
},
{
"hostname": "server.domain2"
}
]
Observe que SERVER.domain no se devuelve, porque el carácter de subrayado (_) no tiene ningún carácter final coincidente.
El operador ILIKE
Utilice el operador ILIKE para recuperar coincidencias de series parciales que no distinguen entre mayúsculas y minúsculas.
GET /path/to/api
[
{
"hostname": "server.domain1"
},
{
"hostname": "server.domain2"
},
{
"hostname": "SERVER.domain"
},
{
"hostname": "server.DOMAIN"
}
] hostname ILIKE "server.domain" genera la siguiente colección de datos:GET /path/to/api?filter=hostname%20ILIKE%20%22server.domain%22'
[
{
"hostname": "SERVER.domain"
},
{
"hostname": "server.DOMAIN"
}
]