La sintaxis de cadenas de consulta permite filtrar datos y simplificar la lógica condicional en SLS DSL.
Referencia rápida
Funciones compatibles:
|
Tipo |
Función |
Escenario |
|
Función de verificación de eventos |
Verifica si los valores de los campos del evento cumplen condiciones específicas. |
|
|
Función de recursos |
Extrae datos tabulares de un logstore. Admite listas de permitidos y listas de bloqueados basadas en cadenas de consulta para el filtrado. |
|
|
Extrae datos tabulares de RDS MySQL. Admite listas de permitidos y listas de bloqueados basadas en cadenas de consulta para el filtrado. |
Búsqueda por campo frente a búsqueda de texto completo
Comparación de funciones:
|
Función |
Búsqueda por campo |
Búsqueda de texto completo |
|
Búsqueda de subcadenas |
Compatible |
Compatible |
|
Búsqueda con comodines mediante |
Compatible |
Compatible |
|
Búsqueda de coincidencia exacta |
Compatible |
No compatible |
|
Búsqueda con expresiones regulares |
Compatible |
No compatible |
|
Búsqueda por rango numérico |
Compatible |
No compatible |
|
Comparación numérica |
Compatible |
No compatible |
|
Operadores lógicos: and, or, not y combinaciones |
Compatible |
Compatible |
Escape de caracteres
Utilice caracteres de escape para los caracteres especiales en las cadenas de consulta, como asteriscos (*) y barras invertidas (\).
-
Escape de nombres de campo
No encierre los nombres de campo entre comillas dobles. Use una barra invertida (\) como carácter de escape para los caracteres especiales:
\*\(1+1\)\?: abc: Caracteres especiales con escape mediante barra invertida.__tag__\:__container_name__: abc: Dos puntos con escape mediante barra invertida.chinese_field: abc: Los caracteres chinos no requieren escape."content": abc: No válido. No encierre los nombres de campo entre comillas dobles.
-
Escape de valores de búsqueda
-
Use una barra invertida (\) como carácter de escape para las comillas dobles y las barras invertidas dentro de los valores. Ejemplo:
content: "abc\"xy\\z".NotaUtilice comillas simples para la cadena externa y comillas dobles para el valor de búsqueda interno.
e_search("domain: '/url/test.jsp'")es incorrecto. El formato correcto ese_search('domain: "/url/test.jsp"'). Use una barra invertida (\) como carácter de escape para los asteriscos (*) y los signos de interrogación (?) a fin de evitar la coincidencia con comodines.
-
Las cadenas que contienen únicamente caracteres chinos, letras, dígitos, guiones bajos (_), guiones (-), asteriscos (*) o signos de interrogación (?) no requieren comillas dobles. En caso contrario, encierre la cadena entre comillas dobles:
status: "\*\?()[]:=": Encerrada entre comillas dobles. Solo el asterisco (*) y el signo de interrogación (?) requieren escape con barra invertida.content: ()[]:=: No válido. Debe encerrarse entre comillas dobles.status: active\*testystatus: active\?test: Solo el carácter comodín requiere escape. No se necesitan comillas dobles.
-
Búsqueda de subcadenas
-
Búsqueda de texto completo
Busque una subcadena en todos los campos.
-
Sintaxis
e_search('substring') -
Ejemplos
e_search('"error"'): Búsqueda de subcadenas.e_search('"active error"'): Búsqueda de subcadenas con un espacio en el término.e_search('active error'): Varias subcadenas combinadas con OR de forma predeterminada.
-
-
Búsqueda por campo
Busque una subcadena en un campo específico.
-
Sintaxis
e_search('...') -
Ejemplos
e_search('status: active'): Búsqueda de subcadenas.e_search('author: "john smith"'): Búsqueda de subcadenas con un espacio en el valor.
Notae_search('field: active error')equivale afield:active OR "error". Esto buscaactiveen el campo field o realiza una búsqueda de texto completo paraerror.
-
Búsqueda con comodines
Un asterisco (*) coincide con cero o más caracteres. Un signo de interrogación (?) coincide con exactamente un carácter, incluidos los caracteres multibyte como los caracteres chinos.
-
Búsqueda de texto completo
Busque una subcadena en todos los campos.
-
Sintaxis
e_search('substring') -
Ejemplos
e_search('active*test'): Coincide con cero o más caracteres entre "active" y "test".e_search('occurs*error'): Coincide conoccurs error,occurs critical errory patrones similares.e_search('active?good'): Coincide con exactamente un carácter entre "active" y "good".e_search('ac*tive?good'): Combina ambos comodines.e_search('ac*tive??go*od'): Varios comodines en una sola consulta.
-
-
Búsqueda por campo
Busque una subcadena en un campo específico.
-
Sintaxis
e_search('field_name:substring') -
Ejemplos
e_search('status: active*test'): Coincide con cero o más caracteres.e_search('status: active?good'): Coincide con un solo carácter.
-
Coincidencia exacta
La coincidencia exacta requiere que todo el valor del campo coincida de principio a fin.
-
Sintaxis
e_search('field_name==exact_match_string') -
Ejemplos
e_search('author== "john smith"'): El campo author coincide exactamente con john smith.e_search('status== ac*tive?good'): Combinación con comodines.
Coincidencia con expresiones regulares
Las expresiones regulares permiten una coincidencia de patrones más potente que los comodines.
-
Sintaxis
e_search('field_name~=regular_expression_string')NotaUtilice el prefijo
rpara evitar el escape con barra invertida en las expresiones regulares.De forma predeterminada, se realiza una coincidencia parcial. Agregue
^al principio y$al final para obtener una coincidencia completa.
-
Ejemplos
e_search('status~= "\d+"'): El campo status contiene dígitos.e_search('status~= "^\d+$"'): El campo status es un número.
Comparación numérica
Compare los valores de los campos numéricamente.
-
Comparación numérica directa
Utilice los operadores
>,>=,=,<y<=para realizar comparaciones.e_search('age >= 18') # >=18 e_search('age > 18') # > 18 e_search('age = 18') # = 18 e_search('age <= 18') # <=18 e_search('age < 18') # < 18 -
Comparación por rango numérico
Utilice intervalos cerrados. Un asterisco (*) indica un lado sin límites.
e_search('count: [100, 200]') # >=100 and <=200 e_search('count: [*, 200]') # <=200 e_search('count: [200, *]') # >=200
Operadores lógicos
Combine búsquedas con operadores lógicos. Utilice paréntesis () para agrupar condiciones.
|
Operador |
Palabra clave |
|
AND |
|
|
OR |
|
|
NOT |
|
Ejemplos:
e_search('abc OR xyz') # Logical operators are case-insensitive
e_search('abc and (xyz or zzz)')
e_search('abc and not (xyz and not zzz)')
e_search('abc && xyz') # and
e_search('abc || xyz') # or
e_search('abc || !xyz') # or not
Operadores lógicos en la coincidencia de subcadenas a nivel de campo:
e_search('field: (abc OR xyz)') # The field contains abc or xyz
e_search('field: (abc OR not xyz)') # The field contains abc or does not contain xyz
e_search('field: (abc && !xyz)') # The field contains abc and does not contain xyz
Evaluación de campos
Compruebe si un campo existe o cumple condiciones específicas.
e_search('field: *'): El campo existe.e_search('not field:*'): El campo no existe.e_search('not field:""'): El campo no existe.e_search('field: "?"'): El campo existe y su valor no está vacío.e_search('field==""'): El campo existe y su valor está vacío.e_search('field~=".+"'): El campo existe y su valor no está vacío.e_search('not field~=".+"'): El campo no existe o su valor está vacío.e_search('not field==""'): El campo no existe o su valor no está vacío.