Estructura del bloque Condición
El bloque condición equivale a la clausula WHERE
de SQL y admite un alto grado de flexibilidad a la hora de especificar las condiciones de búsqueda.
El bloque Condición se divide en grupos de condiciones. Dentro de un grupo de condiciones puede haber una única condición (bloque (6)) o varias (bloque (2)).
Condiciones
Una condición simple (6) está formada por el nombre de una columna (7), un operador de comparación (8) (consulta Operadores de comparación) y el valor a comparar (9). Adicionalmente, puede tener asociado un operador booleano de negación (3).
Una condición compuesta (2) está formada por varias condiciones simples que se relacionan entre sí mediante los operadores AND y OR (4).
Grupos
Cada nuevo grupo creado es equivalente a introducir una condición simple o compuesta rodeada de paréntesis en la clausula WHERE
de la sentencia SQL correspondiente.
Se pueden crear varios grupos con el botón Nuevo grupo (1) que se relacionarán entre sí mediante un operador lógico AND / OR (5).
A su vez, dentro de un grupo se pueden crear uno o más grupos de condiciones simples o compuestas mediante los botones Nuevo grupo (10) de segundo nivel.
Operadores de comparación
-
ContainsAny: operador equivalente al “like” de SQL, busca una subcadena de caracteres.
-
equals: busca una cadena de caracteres exacta.
-
endsWithAny: busca una cadena de caracteres al final.
-
startsWithAny: busca una cadena de caracteres al inicio.
-
containsInOrder: busca hasta 3 subcadenas de caracteres en el orden indicado. Especificar una única cadena es equivalente a la opción ContainsAny. Se mostrarán los resultados que contengan todas las cadenas especificadas (operador lógico AND) y en el orden establecido.
-
Operadores booleanos: se admiten los operadores logicos básicos ('<','>','>=','<=',==')
-
matches: permite escribir una expresión regular en formato java. Para obtener más información sobre el formato de las expresiones regulares, los caracteres de escape y otros detalles de la implementación RegEx en Java consulta https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html.
Búsquedas sensibles a mayúsculas
Por defecto, todas las condiciones de tipo cadena de caracteres se establecen sin tener en cuenta mayúsculas y minúsculas (“case insensitive”), pero el analista puede cambiar este comportamiento estableciéndolo en el desplegable asociado.
Los campos ParentFilename y ChildFilename se almacenan en el océano de datos en minúsculas, ya que se extraen de los campos ParentPath o ChildPath respectivamente. Después de la extracción, se ejecuta de forma automática un proceso de normalización en el que se cambian todas las mayúsculas por minúsculas. Cualquier Hunting rule donde se especifique “case sensitive” y utilice letras en mayúsculas para buscar en ParentFilename o ChildFilename no devolverá ningún resultado. Sin embargo, los campos ParentPath o ChildPath no sufren este proceso de normalización, y se almacenan en el océano de datos tal cual. En este caso sí tiene sentido utilizar “case sensitive” o “case insensitive” según las necesidades del analista.