A sintaxe de string de consulta filtra dados e simplifica a lógica condicional na SLS DSL.
Referência rápida
Funções compatíveis:
|
Tipo |
Função |
Cenário |
|
Função de verificação de evento |
Verifica se os valores dos campos do evento atendem a condições específicas. |
|
|
Função de recurso |
Obtém dados tabulares de um Logstore. Permite filtragem por meio de listas de permissões e listas de bloqueios baseadas em strings de consulta. |
|
|
Obtém dados tabulares do RDS MySQL. Permite filtragem por meio de listas de permissões e listas de bloqueios baseadas em strings de consulta. |
Busca por campo versus busca de texto completo
Comparação de recursos:
|
Recurso |
Busca por campo |
Busca de texto completo |
|
Busca por substring |
Compatível |
Compatível |
|
Busca com curingas usando |
Compatível |
Compatível |
|
Busca por correspondência exata |
Compatível |
Não compatível |
|
Busca por expressão regular |
Compatível |
Não compatível |
|
Busca por intervalo numérico |
Compatível |
Não compatível |
|
Comparação numérica |
Compatível |
Não compatível |
|
Operadores lógicos: and, or, not e combinações |
Compatível |
Compatível |
Escape de caracteres
Use escape para caracteres especiais em strings de consulta, como asteriscos (*) e barras invertidas (\).
-
Escape de nome de campo
Não coloque nomes de campos entre aspas duplas. Use barra invertida (\) para escapar caracteres especiais:
\*\(1+1\)\?: abc: Caracteres especiais escapados com barra invertida.__tag__\:__container_name__: abc: Dois-pontos escapados com barra invertida.chinese_field: abc: Caracteres chineses não exigem escape."content": abc: Inválido. Não coloque nomes de campos entre aspas duplas.
-
Escape de valor de busca
-
Escape aspas duplas e barras invertidas dentro dos valores usando uma barra invertida (\). Exemplo:
content: "abc\"xy\\z".NotaUse aspas simples para a string externa e aspas duplas para o valor de busca interno.
e_search("domain: '/url/test.jsp'")está incorreto. O formato correto ée_search('domain: "/url/test.jsp"'). Escape asteriscos (*) e pontos de interrogação (?) com uma barra invertida (\) para evitar correspondência de curingas.
-
Strings contendo apenas caracteres chineses, letras, dígitos, sublinhados (_), hifens (-), asteriscos (*) ou pontos de interrogação (?) dispensam aspas duplas. Caso contrário, coloque a string entre aspas duplas:
status: "\*\?()[]:=": Entre aspas duplas. Apenas o asterisco (*) e o ponto de interrogação (?) exigem escape com barra invertida.content: ()[]:=: Inválido. É obrigatório usar aspas duplas.status: active\*testestatus: active\?test: Apenas o caractere curinga exige escape. Aspas duplas são desnecessárias.
-
Busca por substring
-
Busca de texto completo
Busque uma substring em todos os campos.
-
Sintaxe
e_search('substring') -
Exemplos
e_search('"error"'): Busca por substring.e_search('"active error"'): Busca por substring com espaço no termo.e_search('active error'): Múltiplas substrings combinadas com OR por padrão.
-
-
Busca por campo
Busque uma substring em um campo específico.
-
Sintaxe
e_search('...') -
Exemplos
e_search('status: active'): Busca por substring.e_search('author: "john smith"'): Busca por substring com espaço no valor.
Notae_search('field: active error')equivale afield:active OR "error". Isso buscaactiveno campo field ou executa uma busca de texto completo porerror.
-
-
Busca de texto completo
Busque uma substring em todos os campos.
-
Sintaxe
e_search('substring') -
Exemplos
e_search('active*test'): Corresponde a zero ou mais caracteres entre "active" e "test".e_search('occurs*error'): Corresponde aoccurs error,occurs critical errore padrões semelhantes.e_search('active?good'): Corresponde exatamente a um caractere entre "active" e "good".e_search('ac*tive?good'): Combina ambos os curingas.e_search('ac*tive??go*od'): Múltiplos curingas em uma única consulta.
-
-
Busca por campo
Busque uma substring em um campo específico.
-
Sintaxe
e_search('field_name:substring') -
Exemplos
e_search('status: active*test'): Corresponde a zero ou mais caracteres.e_search('status: active?good'): Corresponde a um único caractere.
-
-
Sintaxe
e_search('field_name==exact_match_string') -
Exemplos
e_search('author== "john smith"'): O campo author corresponde exatamente a john smith.e_search('status== ac*tive?good'): Combine com curingas.
-
Sintaxe
e_search('field_name~=regular_expression_string')NotaUse o prefixo
rpara evitar escape de barra invertida em expressões regulares.A correspondência parcial ocorre por padrão. Adicione
^no início e$no final para obter correspondência completa.
-
Exemplos
e_search('status~= "\d+"'): O campo status contém dígitos.e_search('status~= "^\d+$"'): O campo status é um número.
-
Comparação numérica direta
Use os operadores
>,>=,=,<e<=para comparação.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 -
Comparação de intervalo numérico
Use intervalos fechados. Um asterisco (*) indica limite aberto.
e_search('count: [100, 200]') # >=100 and <=200 e_search('count: [*, 200]') # <=200 e_search('count: [200, *]') # >=200 e_search('field: *'): O campo existe.e_search('not field:*'): O campo não existe.e_search('not field:""'): O campo não existe.e_search('field: "?"'): O campo existe e seu valor não está vazio.e_search('field==""'): O campo existe e seu valor está vazio.e_search('field~=".+"'): O campo existe e seu valor não está vazio.e_search('not field~=".+"'): O campo não existe ou seu valor está vazio.e_search('not field==""'): O campo não existe ou seu valor não está vazio.
Busca com curingas
Um asterisco (*) corresponde a zero ou mais caracteres. Um ponto de interrogação (?) corresponde exatamente a um caractere, incluindo caracteres multibyte, como caracteres chineses.
Correspondência exata
A correspondência exata exige que todo o valor do campo corresponda do início ao fim.
Correspondência por expressão regular
Expressões regulares permitem correspondência de padrões mais avançada do que curingas.
Comparação numérica
Compare valores de campo numericamente.
Operadores lógicos
Combine buscas com operadores lógicos. Use parênteses () para agrupar condições.
|
Operador |
Palavra-chave |
|
AND |
|
|
OR |
|
|
NOT |
|
Exemplos:
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 na correspondência de substrings no nível do 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
Avaliação de campo
Verifique se um campo existe ou atende a condições específicas.