Fonctionnalités des fonctions
Configurez les champs référencés dans les paramètres des fonctions en tant que champs d'index ou d'attribut, conformément à la description de chaque fonction.
Configurez tout champ de document utilisé comme paramètre de fonction en tant qu'index ou attribut, selon les exigences de la fonction spécifique.
in ou notin : vérifie si les valeurs d'un champ figurent dans une liste spécifique
1. Syntaxe
in(field, "number1|number2")notin(field, "number1|number2")
2. Paramètres
field : nom du champ à évaluer. Seuls les champs de type INT, LITERAL, FLOAT ou DOUBLE sont pris en charge. Les champs de type ARRAY ou TEXT ainsi que l'analyseur pour les recherches floues ne sont pas pris en charge. number N : éléments d'un ensemble. Séparez plusieurs éléments par des barres verticales (|). Chaque élément doit être une chaîne de caractères.
3. Valeurs de retour
true/false
4. Scénarios
Scénario 1 : Récupérez les documents contenant « iphone » et dont le champ type a pour valeur 1, 2 ou 3. Le champ type doit être de type INT.
query=default:'iphone'&&filter=in(type, '1|2|3')
Scénario 2 : Récupérez les documents contenant « iphone » et dont le champ type n'a pas pour valeur 1, 2 ou 3. Le champ type doit être de type INT32.
query=default:'iphone'&&filter=notin(type, '1|2|3')
5. Remarques sur l'utilisation
Configurez le champ référencé dans les paramètres des fonctions en tant que champ d'attribut.
Si vous utilisez la fonction in ou notin dans des clauses filter, vous ne pouvez pas utiliser de champs de type ARRAY. Dans le cas contraire, le système renvoie l'erreur de syntaxe suivante avec le code d'erreur 6141 : Filter clause syntax error.
La fonction
in(field, "value1|value2")équivaut à(field = value1) OR (field = value2). Toutefois, la fonctioninoffre de meilleures performances. Le même principe s'applique à la fonctionnotin.La transmission d'un grand nombre de valeurs (par exemple, des milliers) aux fonctions
inounotinpeut dégrader considérablement les performances des requêtes. Une liste de valeurs plus longue augmente la charge de calcul pour le filtrage, ce qui peut entraîner une latence plus élevée voire un délai d'expiration.Si vous devez transmettre un grand nombre de valeurs, divisez la liste en lots plus petits (par exemple, 500 valeurs ou moins par lot) pour des requêtes séparées, puis combinez leurs résultats.