Tous les produits
Search
Centre de documentation

OpenSearch:Expression de filtrage

Dernière mise à jour :Aug 10, 2026

Spécifiez des conditions de filtrage pour sélectionner les documents. L'expression de filtrage est facultative.

Syntaxe : filter:"expression". Expression=Opérande gauche Opérateur relationnel Opérande droit.

  • Opérande gauche : un champ d'attribut ou une constante (valeur numérique ou chaîne de caractères).

  • Opérateur relationnel : les opérateurs suivants sont pris en charge : > < = <= >= !=

  • Opérande droit : un champ d'attribut ou une constante (valeur numérique ou chaîne de caractères).

Exemple :

filter:"price > 100": You can use this expression to query the documents in which the value of the price field is greater than 100.
filter:"ids=1": The ids field is a multi-value field. You can use this expression to query the documents in which the values of the ids field contain 1.
filter:"province!=\"Zhejiang\"": You can use this expression to query the documents in which the value of the province field is not Zhejiang.

Exemples

Spécifier plusieurs conditions

Syntaxe : filter:"Condition Opérateur logique Condition"

Condition : une expression relationnelle complète, telle que price > 100.

Opérateur logique : AND ou OR. L'opérateur AND renvoie les documents correspondant aux deux conditions. L'opérateur OR renvoie les documents correspondant à l'une ou l'autre des conditions. Vous pouvez également utiliser des parenthèses () pour attribuer une priorité plus élevée à certaines conditions.

Exemple :

filter:"price > 100 AND categoryId=10": You can use this expression to query the documents in which the value of the categoryId field is 10 and the value of the price field is greater than 100.
filter:"categoryId=100 OR categoryId=10": You can use this expression to query the documents in which the value of the categoryId field is 100 or 10.
filter:"(categoryId=100 OR categoryId=10) AND price > 100": You can use this expression to query the documents in which the value of the categoryId field is 100 or 10, and the value of the price field is greater than 100.

Utiliser des expressions arithmétiques pour spécifier des conditions

Syntaxe : filter:"Opérande gauche Opérateur arithmétique Opérande droit Opérateur relationnel Valeur de condition"

  • Opérande gauche : un champ d'attribut ou une constante (valeur numérique ou chaîne de caractères).

  • Opérateur arithmétique : les opérateurs suivants sont pris en charge : + - * /

  • Opérande droit : un champ d'attribut ou une constante (valeur numérique ou chaîne de caractères).

  • Valeur de condition : un champ d'attribut ou une constante.

Exemple :

filter:"price*0.5 > 100": You can use this expression to query the documents in which the product of the value of the price field multiplied by 0.5 is greater than 100.
filter:"price-cost > 100": You can use this expression to query the documents in which the difference between the value of the price field and the value of the cost field is greater than 100.
filter:"(price*0.5 > 100) AND categoryId=10": You can use this expression to query the documents in which the product of the value of the price field multiplied by 0.5 is greater than 100 and the value of the categoryId field is 10.

Utiliser des fonctions pour spécifier des conditions

Syntaxe : filter:"Fonction Opérateur relationnel Opérande droit"

Description : Fonction intégrée telle que in ou notin. Pour plus d'informations, consultez la section « Fonctions intégrées » de cette rubrique. Si la fonction appelée renvoie des valeurs de type BOOLEAN, il n'est pas nécessaire de spécifier un opérateur relationnel dans l'expression de filtrage. Vous pouvez également spécifier une fonction comme opérande droit d'un opérateur relationnel.

Exemple :

filter:"in(id,"1|2|3")": You can use this expression to query the documents in which the value of the id field is 1, 2, or 3.

La section suivante décrit l'utilisation d'autres fonctions intégrées pour spécifier des conditions.

Fonctions intégrées

distance

distance : renvoie la distance sphérique entre deux points. Cette fonction sert généralement au calcul de distances dans les services basés sur la localisation (LBS).

Exemple :

Recherchez les boutiques situées dans un rayon de 10 kilomètres autour des coordonnées d'un utilisateur. Dans cet exemple, la longitude et la latitude de l'utilisateur sont respectivement 120,34256 et 30,56982. Les champs lon et lat utilisés dans les documents pour spécifier la longitude et la latitude d'une boutique doivent être configurés en tant que champs d'attribut.

filter:"distance(lon,lat,\"120.34256\",\"30.56982\")<10"

contain et notcontain

Description :

  • contain : vérifie si les valeurs du champ a contiennent une valeur du champ b. Le champ a peut être un champ à valeur unique ou à valeurs multiples.

  • notcontain : vérifie si les valeurs du champ a ne contiennent pas une valeur du champ b. Le champ a peut être un champ à valeur unique ou à valeurs multiples.

Paramètres :

contain(a,b)

  • a : spécifie un champ à valeur unique ou à valeurs multiples de type INT32, INT64 ou STRING.

  • b : spécifie une chaîne de caractères constante. Les constantes spécifiées dans la chaîne sont séparées par des barres verticales (|). Si les valeurs du champ a correspondent à l'une des constantes spécifiées, cette fonction renvoie true.

notcontain(a,b)

  • a : spécifie un champ à valeur unique ou à valeurs multiples de type INT32, INT64 ou STRING.

  • b : spécifie une chaîne de caractères constante. Les constantes spécifiées dans la chaîne sont séparées par des barres verticales (|). Si les valeurs du champ a ne correspondent à aucune des constantes spécifiées, cette fonction renvoie true.

Valeurs de retour :

  • contain(a,b) : cette fonction renvoie des valeurs de type BOOLEAN. Valeurs valides : true et false. Une valeur true indique que les valeurs du champ a contiennent une valeur du champ b. Une valeur false indique que les valeurs du champ a ne contiennent pas de valeur du champ b.

  • notcontain(a,b) : cette fonction renvoie des valeurs de type BOOLEAN. Valeurs valides : true et false. Une valeur true indique que les valeurs du champ a ne contiennent pas de valeur du champ b. Une valeur false indique que les valeurs du champ a contiennent une valeur du champ b.

Exemple :

Utilisez la fonction contain pour interroger les documents dont les valeurs du champ nid contiennent 1, 2 ou 3.

filter:"contain(nid, \"1|2|3\")"

Utilisez la fonction notcontain pour interroger les documents dont les valeurs du champ nid ne contiennent pas 1, 2 ou 3.

filter:"notcontain(nid, \"1|2|3\")"

in et notin

in ou notin : vérifie si les valeurs d'un champ figurent dans une liste spécifique.

Exemple :

Interrogez les documents dont la valeur du champ type est 1, 2 ou 3. Le champ type doit être de type INT.

filter:"in(type, \"1|2|3\")"

Interrogez les documents dont la valeur du champ type n'est ni 1, ni 2, ni 3. Le champ type doit être de type INT32.

filter:"notin(type, \"1|2|3\")"

Remarques sur l'utilisation

  • En raison de problèmes de précision, le système ne peut pas vérifier l'égalité entre deux valeurs de type FLOAT ou DOUBLE. Si un champ de type FLOAT ou DOUBLE est requis dans une expression de filtrage, utilisez un opérateur supérieur à (>) ou inférieur à (<) pour définir la relation.

  • Entourez les valeurs de type STRING de guillemets doubles ("") dans une expression de filtrage. Vous pouvez spécifier un opérateur relationnel dans une expression contenant une chaîne pour définir la relation entre la chaîne et une autre valeur. Vous ne pouvez pas utiliser d'opérateur arithmétique pour définir la relation entre la chaîne et une autre valeur.

  • Vous pouvez utiliser l'opérateur d'égalité (=) ou l'opérateur d'inégalité (!=) dans une expression contenant des champs de type STRING, mais vous ne pouvez pas utiliser l'opérateur supérieur à (>) ou inférieur à (<) dans ce type d'expression.

  • Si vous utilisez l'opérateur d'égalité (=) ou l'opérateur d'inégalité (!=) pour définir la relation entre un champ à valeurs multiples et une valeur de condition, le système renvoie les documents dont les valeurs du champ à valeurs multiples incluent la valeur de condition.

  • Échappez les guillemets doubles (") dans une expression.