Sintaxis de consulta

Para buscar elementos, puedes filtrar los resultados de la búsqueda si especificas una FIELD, un operador y un QUERY.

Concordancia exacta del texto: operador igual (=)

FIELD=QUERY

Una consulta de ejemplo es: owner=amy.2020@gmail.com.

El operador equals (=) comprueba que QUERY coincida exactamente con el valor de los metadatos del elemento FIELD. Distingue mayúsculas de minúsculas. Para un campo repetido, si QUERY coincide con uno de los valores del campo, el elemento se considera una coincidencia. Los nombres de FIELD compatibles dependen de si la consulta es una búsqueda de recursos o una búsqueda de políticas de administración de identidades y accesos (IAM). El QUERY es una frase, pero no puede contener comodines.

Coincidencia parcial de texto: tiene el operador (:)

FIELD:QUERY

Una consulta de ejemplo es: owner:amy.2020@gmail.

Cuando se realiza una búsqueda, se compara QUERY con el valor de los metadatos de elementos especificados FIELD. Los campos de consulta y metadatos del elemento se convierten en una secuencia de palabras (es decir, tokens) para realizar una comparación. Esto se realiza de la siguiente manera:

  • Quitar los caracteres especiales iniciales o finales y convertir en token el valor de la búsqueda mediante el trato de los caracteres especiales como delimitadores. Los caracteres especiales de asignación de token son los caracteres que no son alfanuméricos [a-zA-Z0-9], guiones bajos [_] ni et [&].
  • Realizar mayúsculas y minúsculas de Unicode para que se ignore las mayúsculas y minúsculas de los caracteres.

A continuación, se presentan algunos ejemplos de asignación de token:

  • A "amy-2020@GMAIL.com" se le asigna un token: [amy,2020,gmail,com]
  • A "google.com/cloud" se le asigna un token: [google,com,cloud]
  • A "Compute %Instance%" se le asigna un token: [compute,instance]
  • A "$%^*-!" se le asigna un token: []
  • A "" se le asigna un token: []
  • A "compute*storage" se le asigna un token: [compute,storage]
  • A "compute&storage" se le asigna un token: [compute&storage]
  • A "BOB_test@gmail.com" se le asigna un token: [bob_test,gmail,com]
  • A "instance/_my_vm_" se le asigna un token: [instance,_my_vm_]

El operador has (:) comprueba que cada palabra de QUERY exista dentro del valor del campo de metadatos del elemento. También verifica el orden y la consecutividad de las palabras. El FIELD compatible puede ser diferente, según si es una búsqueda de recursos o una búsqueda de políticas de IAM. El QUERY puede ser una frase o una combinación de frases.

Ejemplos

Por ejemplo, un elemento cuyo campo owner tiene el valor "amy.2020@gmail.com" coincide con las siguientes consultas:

  • Coincide con que la frase es exactamente la misma que el valor del campo.

      owner=amy.2020@gmail.com
    
  • Coincide porque los signos de puntuación se tratan como delimitadores y no se distingue entre mayúsculas y minúsculas.

      owner:amy-2020@GMAIL.com
    
  • Coincide porque las palabras de una frase concuerda con el orden. Ten en cuenta que "amy 2020 gmail" es una frase; las palabras deben coincidir en orden y de forma consecutiva.

      owner:"amy 2020 gmail"
    
  • Coincide porque una combinación de palabras puede aparecer en cualquier orden. Ten en cuenta que (gmail 2020 amy) es una combinación; las palabras coinciden, pero no necesariamente según el orden.

      owner:(gmail 2020 amy)
    
  • Coincide porque las palabras de la frase concuerdan según el orden y las palabras de la combinación aparecen en cualquier orden. Ten en cuenta que "amy 2020" es una frase y las palabras deben coincidir en orden y de forma consecutiva. (gmail "amy 2020") es una combinación; gmail y "amy 2020" coinciden, y no necesariamente según el orden.

      owner:(gmail "amy 2020")
    
  • Coincide porque * se puede usar en una frase para indicar una coincidencia de prefijo.

      owner:amy-20*
    

Un elemento cuyo campo owner tiene el valor "amy.2020@gmail.com" NO coincide con las siguientes consultas:

  • No coincide porque la frase distingue entre mayúsculas y minúsculas. Usa el operador has (:) para la coincidencia que no distingue entre mayúsculas y minúsculas.

      owner=amy.2020@GMAIL.com
    
  • No coincide porque la frase coincide parcialmente con el valor del campo. Usa el operador has (:) en lugar de la coincidencia parcial.

      owner=amy.2020@gmail
    

Coincidencia numérica: operadores de comparación (=, >, >=, <, <=)

FIELD=QUERY

FIELD>QUERY

FIELD>=QUERY

FIELD<QUERY

FIELD<=QUERY

Los operadores de comparación verifican que el resultado de la comparación entre QUERY y el valor de los metadatos del elemento FIELD sea verdadero.

Los nombres FIELD admitidos incluyen createTime y updateTime.

Para los campos de marca de tiempo (createTime y updateTime), QUERY podría ser un número entero firmado de 64 bits, que representa la marca de tiempo epoch en segundos. o una string de fecha y hora en uno de los siguientes formatos (la zona horaria es UTC):

  • AAAA-MM-DD: 2021-01-01 (las comillas son opcionales)
  • "YYYY-MM-DDThh:mm:ss": "2021-01-01T00:00:00" (se requieren comillas)

Ejemplos

Por ejemplo, un elemento cuyo campo createTime tiene el valor 1609459200 (marca de tiempo de ciclo de entrenamiento de 2021-01-01T00:00:00) coincide con las siguientes consultas:

  • Igual que

      createTime=1609459200
      createTime=2021-01-01
      createTime="2021-01-01T00:00:00"
    
  • Superior a

      createTime>1500000000
      createTime>2020-01-01
      createTime>"2020-01-01T00:00:00"
    
  • Superior o igual a

      createTime>=1609459200
      createTime>=2021-01-01
      createTime>="2021-01-01T00:00:00"
    
  • Inferior a

      createTime<1700000000
      createTime<2022-01-01
      createTime<"2022-01-01T00:00:00"
    
  • Menor o igual que

      createTime<=1609459200
      createTime<=2021-01-01
      createTime<="2021-01-01T00:00:00"
    

Frase

Una frase es una o varias palabras entre comillas dobles ("). En el caso de las frases, el orden de las palabras es importante. Las palabras en la frase deben coincidir en orden y de forma consecutiva. Ten en cuenta que para que coincidan varias palabras sin respetar el orden, debes usar la combinación (p. ej., field:(word1 word2 word3)).

Las siguientes expresiones son las mismas:

owner:amy
owner:"amy"

owner:amy.2020@gmail.com
owner:"amy.2020@gmail.com"

name://cloudresourcemanager.googleapis.com/projects/projects/foo-bar
name:"//cloudresourcemanager.googleapis.com/projects/projects/foo-bar"

Las siguientes frases deben ir entre comillas:

name:"my instance"

owner:"amy%2020@gmail.com"

description:"domain:gmail.com"

description:"hello \"world\""

description:"hello\\world"

Ejemplos: frase

  • Muestra los elementos cuyo campo owner tenga la palabra amy y la palabra 2020 en orden y consecutiva:

    owner:"amy 2020"
    
  • Si tienes un elemento cuyo valor de campo owner es "amy.2020@gmail.com", la consulta anterior coincidirá.

  • Si tienes un elemento cuyo valor de campo owner es "2020.amy@gmail.com", la consulta anterior no coincide, ya que las palabras no coinciden en orden.

  • Si tienes un elemento cuyo valor de campo owner es "amy.us.2020@gmail.com", la consulta anterior no coincide, ya que las palabras no coinciden parcialmente.

Combinación

Las frases de búsqueda se pueden combinar con AND o OR. Los paréntesis se usan para agrupar combinaciones.

Ejemplos: combinación

  • Muestra los elementos cuyo campo owner tenga la palabra amy y la palabra john, sin respetar el orden. AND es opcional en una combinación. Ten en cuenta que para hacer coincidir varias palabras en orden, debes usar la frase (p.ej., field:"word1 word2 word3").

    owner:(amy john)
    
  • Muestra los elementos cuyo campo owner tiene la palabra amy o la palabra john.

    owner:(amy OR john)
    
  • Muestra los elementos cuyo campo owner tenga la palabra amy y la palabra john, o una palabra bob.

    owner:((amy john) OR bob)
    
  • Muestra los elementos cuyo campo owner tenga la palabra amy y la palabra john o name tenga la palabra bob.

    owner:(amy john) OR name:bob
    

Fijar filtros de búsqueda

Los filtros de búsqueda se pueden negar mediante el operador NOT. Los paréntesis son compatibles, pero no son obligatorios.

Ejemplos: filtros de búsqueda restringidos

  • Muestra elementos cuyos campos state no contienen la palabra ACTIVE.

    NOT state:ACTIVE
    
  • Muestra los elementos cuyo campo owner no tiene la palabra amy ni la palabra john.

    NOT owner:(amy OR john)
    
  • Muestra elementos cuyo campo networkTags no contiene la palabra internal o private.

    NOT (networkTags:internal OR networkTags:private)
    

Comodín

Los asteriscos (*) se pueden usar en una frase como carácter comodín. Según su posición, puede tener significados diferentes.

  • Si está al final de una frase, por ejemplo, "am 20*", es un indicador de coincidencia de prefijo del token. La consulta es equivalente a (am* 20*). Coincide con el campo que contiene un token que comienza con “am”, p.ej., "amy" y un token que comienza con "20", p.ej., “2021” No importa el orden de los prefijos.

  • Si toda la frase solo contiene un *, p.ej., "labels.env:*", realiza una verificación de existencia. Comprueba si existe la clave de etiqueta "env". No se admiten otros campos.

  • Si está en medio de una frase, p.ej., "compute*storage", se trata como un delimitador de asignación de token. La consulta es equivalente a “compute storage”.

  • Si se encuentra al principio y al final de una frase, p.ej., "*compute storage*", se trata como un delimitador de asignación de token. La consulta es equivalente a “compute storage”.

Ejemplos: coincidencia de prefijo del token

  • Muestra los elementos cuyo campo owner contiene una palabra que comienza con am:

    owner:am*
    
  • Muestra los elementos cuyo campo owner tiene dos palabras con "amy" y "20" como prefijos:

    owner:"amy 20*"
    
    owner:"20 amy*"
    
  • Si tienes un elemento cuyo valor de campo owner es "amy.2020@gmail.com", las consultas anteriores coinciden. Después de la asignación de token, "amy" y "20" son prefijos. Ten en cuenta que la string de consulta "amy 20*" es diferente de "amy 20". El último requiere que 20 sea una palabra entera diferente del prefijo.

Ejemplos: existencia de clave de etiqueta

  • Muestra los elementos cuya labels tiene "env" como clave y tiene cualquier valor (incluidos los valores vacíos o sin valor):

    labels.env:*