Pour rechercher des éléments, vous pouvez filtrer les résultats de la recherche en spécifiant un FIELD
, un opérateur et un QUERY
.
Opérateur de texte exact pour le mot clé exact: est égal(e) à (=
)
FIELD=QUERY
Voici un exemple de requête : policy=amy.2020@gmail.com
.
L'opérateur equals
(=
) vérifie que QUERY
correspond exactement à la valeur des métadonnées de l'élément FIELD
. Il est sensible à la casse. Pour un champ répété, si QUERY
correspond à l'une des valeurs du champ, l'élément est considéré comme une correspondance. Les noms FIELD
acceptés varient selon que la requête est une recherche de ressources ou une recherche de stratégie IAM (Identity and Access Management). QUERY
est une phrase, mais ne peut pas contenir de caractères génériques.
Correspondance partielle de texte: opérateur deux-points (:
)
FIELD:QUERY
Voici un exemple de requête : policy:amy.2020@gmail
.
Lorsque vous effectuez une recherche, la valeur QUERY
est comparée à la valeur des métadonnées d'éléments spécifiées (FIELD
). La requête et les champs de métadonnées de l'élément sont convertis en une séquence de mots (c'est-à-dire des jetons) à des fins de comparaison. Cette conversion comprend les étapes suivantes :
Suppression des caractères spéciaux de début et de fin, et la tokenisation de la valeur de recherche en traitant les caractères spéciaux comme des délimiteurs. Les caractères spéciaux de tokenisation sont les caractères qui ne sont pas des caractères alphanumériques de
[a-zA-Z0-9]
, de trait de soulignement[_]
ou d'esperluette[&]
.Application de la normalisation Unicode de manière à ignorer la casse des caractères
Voici quelques exemples de tokenisation :
"amy-2020@GMAIL.com"
est tokenisé en :[amy,2020,gmail,com]
"google.com/cloud"
est tokenisé en :[google,com,cloud]
"Compute %Instance%"
est tokenisé en :[compute,instance]
"$%^*-!"
est tokenisé en :[]
""
est tokenisé en :[]
"compute*storage"
est tokenisé en :[compute,storage]
"compute&storage"
est tokenisé en :[compute&storage]
"BOB_test@gmail.com"
est tokenisé en :[bob_test,gmail,com]
"instance/_my_vm_"
est tokenisé en :[instance,_my_vm_]
L'opérateur has
(:
) vérifie que chaque mot de QUERY
existe dans la valeur du champ de métadonnées de l'élément. Il vérifie également l'ordre des mots et leur séquence. La valeur FIELD
acceptée peut être différente selon qu'il s'agit d'une recherche de ressources ou d'une recherche de stratégie IAM. QUERY
peut être une expression ou une combinaison d'expressions.
Examples
Par exemple, un élément dont le champ policy
a la valeur amy.2020@gmail.com
correspond aux requêtes suivantes:
- Correspond car l'expression est exactement identique à la valeur du champ.
policy=amy.2020@gmail.com
- Les correspondances sont établies, car les caractères de ponctuation sont traités comme des délimiteurs et la requête n'est pas sensible à la casse.
policy:amy-2020@GMAIL.com
- Correspond car les mots d'une expression sont mis en correspondance selon leur ordre. Notez que
"amy 2020 gmail"
est une expression. Les mots doivent correspondre et se suivre dans cet ordre.
policy:"amy 2020 gmail"
- Correspond car une combinaison de mots peut apparaître dans n'importe quel ordre. Notez que
(gmail 2020 amy)
est une combinaison. Les mots sont mis en correspondance, pas nécessairement dans l'ordre.
policy:(gmail 2020 amy)
- Correspond car les mots contenus dans l'expression sont mis en correspondance dans l'ordre et les mots de la combinaison apparaissent dans n'importe quel ordre. Notez que
"amy 2020"
est une expression et que les mots doivent correspondre et se suivre dans cet ordre.(gmail "amy 2020")
est une combinaison.gmail
et"amy 2020"
sont mis en correspondance et pas nécessairement dans l'ordre.
policy:(gmail "amy 2020")
- Correspond car
*
peut être utilisé dans une expression pour indiquer une correspondance de préfixe.
policy:amy-20*
Un élément dont le champ policy
contient la valeur "amy.2020@gmail.com"
ne correspond PAS aux requêtes suivantes:
- Ne correspond pas, car l'expression est sensible à la casse. Utilisez plutôt l'opérateur
has
(:
) pour les correspondances non sensibles à la casse.
policy=amy.2020@GMAIL.com
- Ne correspond pas, car l'expression correspond partiellement à la valeur du champ. Utilisez plutôt l'opérateur
has
(:
) pour les correspondances partielles.
policy=amy.2020@gmail
Correspondance numérique: opérateurs de comparaison (=
, >
, >=
, <
, <=
)
FIELD=QUERY
FIELD>QUERY
FIELD>=QUERY
FIELD<QUERY
FIELD<=QUERY
Les opérateurs de comparaison vérifient que le résultat de la comparaison entre QUERY
et la valeur des métadonnées de l'élément FIELD
est vrai.
Les noms FIELD
acceptés incluent createTime
et updateTime
.
Pour les champs de code temporel (createTime
et updateTime
), QUERY
peut être un entier signé de 64 bits, qui représente l'horodatage de l'epoch en secondes, ou une chaîne de date et d'heure dans l'un des formats ci-dessous (le fuseau horaire est UTC):
YYYY-MM-DD : 2021-01-01 (les guillemets sont facultatifs)
"YYYY-MM-DDThh:mm:ss" : "2021-01-01T00:00:00" (entre guillemets)
Examples
Par exemple, un élément dont le champ createTime
contient la valeur 1609459200
(code temporel d'epoch 2021-01-01T00:00:00
) correspond aux requêtes suivantes:
Égal à
createTime=1609459200
createTime=2021-01-01
createTime="2021-01-01T00:00:00"
Supérieur à
createTime>1500000000
createTime>2020-01-01
createTime>"2020-01-01T00:00:00"
Supérieur ou égal à
createTime>=1609459200
createTime>=2021-01-01
createTime>="2021-01-01T00:00:00"
Inférieur à
createTime<1700000000
createTime<2022-01-01
createTime<"2022-01-01T00:00:00"
Inférieur ou égal à
createTime<=1609459200
createTime<=2021-01-01
createTime<="2021-01-01T00:00:00"
Expression
Une expression est constituée d'un ou de plusieurs mots placés entre guillemets doubles ("
). Avec les expressions, l'ordre des mots est important. Les mots de l'expression doivent correspondre et se suivre dans l'ordre. Notez que pour rechercher plusieurs mots sans respecter l'ordre, vous devez utiliser la combinaison (par exemple, field:(word1 word2 word3)
).
Les expressions suivantes sont identiques :
policy:amy
policy:"amy"
policy:amy.2020@gmail.com
policy:"amy.2020@gmail.com"
name://cloudresourcemanager.googleapis.com/projects/projects/foo-bar
name:"//cloudresourcemanager.googleapis.com/projects/projects/foo-bar"
Les expressions suivantes doivent être placées entre guillemets :
name:"my instance"
policy:"amy%2020@gmail.com"
description:"domain:gmail.com"
description:"hello \"world\""
description:"hello\\world"
Exemples : expression
Renvoie les éléments dont le champ
policy
contient le motamy
et le mot2020
dans l'ordre et consécutifs :policy:"amy 2020"
Si vous avez un élément dont la valeur du champ
policy
est"amy.2020@gmail.com"
, la requête ci-dessus va correspondre.Dans le cas d'un élément
policy
dont la valeur du champ est"2020.amy@gmail.com"
, la requête ci-dessus ne correspondra pas, car les mots ne sont pas mis en correspondance dans l'ordre.Dans le cas d'un élément
policy
dont la valeur du champ est"amy.us.2020@gmail.com"
, la requête ci-dessus ne correspondra pas, car les mots ne sont pas mis en correspondance de façon consécutive.
Combinaison
Les expressions de recherche peuvent être combinées à l'aide de AND
ou OR
. Les parenthèses permettent de regrouper des combinaisons.
Exemples : combinaison
Renvoie les éléments dont le champ
policy
contient à la fois le motamy
et le motjohn
, sans respecter l'ordre.AND
est facultatif dans une combinaison. Notez que pour rechercher plusieurs mots dans l'ordre, vous devez utiliser l'expression (par exemple,field:"word1 word2 word3"
).owner:(amy john)
Renvoie les éléments dont le champ
policy
contient le motamy
ou le motjohn
.policy:(amy OR john)
Renvoie les éléments dont le champ
policy
contient à la fois les motsamy
etjohn
, ou le motbob
.policy:((amy john) OR bob)
Renvoie les éléments dont le champ
policy
contient le motamy
et le motjohn
, ou dont le champname
contient le motbob
.policy:(amy john) OR name:bob
Filtres de recherche de négation
Vous pouvez utiliser des filtres de négation de recherche à l'aide de l'opérateur NOT
. Les parenthèses sont acceptées, mais pas obligatoires.
Exemples: Ignorer les filtres de recherche
Renvoie les éléments dont le champ
state
ne contient pas le motACTIVE
.NOT state:ACTIVE
Renvoie les éléments dont le champ
policy
ne contient ni le motamy
, ni le motjohn
.NOT policy:(amy OR john)
Renvoie les éléments dont le champ
networkTags
ne contient ni le motinternal
ni le motprivate
.NOT (networkTags:internal OR networkTags:private)
Caractère générique
Les astérisques (*
) peuvent être utilisés dans une expression en tant que caractère générique. Selon la position, leur signification peut être différente.
S'il se trouve à la fin d'une expression (par exemple,
"am 20*"
), il s'agit d'un indicateur de correspondance de préfixe de jeton. La requête équivaut à(am* 20*)
. Il correspond au champ contenant un jeton commençant par "am" (par exemple, "amy") et un jeton commençant par "20" (par exemple, "2021"). L'ordre des préfixes n'a pas d'importance.Si la phrase entière ne contient qu'un seul
*
(par exemple,"labels.env:*"
), elle effectue une vérification de l'existence. Elle vérifie si la clé de libellé "env" donnée existe. Les autres champs ne sont pas acceptés.Si elle se trouve au milieu d'une expression (par exemple,
"compute*storage"
), elle est traitée comme un délimiteur de tokenisation. La requête est équivalente à "compute storage".Si elle se trouve à la fois au début et à la fin d'un syntagme (par exemple,
"*compute storage*"
), il est considéré comme un délimiteur de tokenisation. La requête équivaut à "compute storage" (calcul de l'espace de stockage).
Exemples : correspondance de préfixe de jeton
Renvoie les éléments dont le champ
policy
contient un mot commençant param
:policy:am*
Renvoie les éléments dont le champ
policy
contient deux mots avec les préfixes"amy"
et"20"
:policy:"amy 20*" policy:"20 amy*"
Si vous avez un élément dont la valeur du champ
policy
est"amy.2020@gmail.com"
, les requêtes ci-dessus correspondent. Après la tokenisation,"amy"
et"20"
sont tous deux des préfixes. Notez que la chaîne de requête"amy 20*"
est différente de"amy 20"
. La seconde nécessite que20
soit un mot entier autre qu'un préfixe.
Exemple: existence de la clé de libellé
Renvoie les éléments dont l'un des éléments labels
a la clé "env" et une valeur quelconque (y compris une valeur vide ou aucune valeur):
labels.env:*