PIEDS. SEARCH - Amazon MemoryDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

PIEDS. SEARCH

Utilise l'expression de requête fournie pour localiser les clés dans un index. Une fois localisés, le nombre et/ou le contenu des champs indexés contenus dans ces clés peuvent être renvoyés. Pour plus d'informations, voir Expression de requête de recherche vectorielle.

Pour créer des données à utiliser dans ces exemples, consultez le FT. CREATEcommande.

Syntaxe

FT.SEARCH <index-name> <query> [RETURN <token_count> (<field-identifier> [AS <alias>])+] [TIMEOUT timeout] [PARAMS <count> <name> <value> [<name> <value>]] [LIMIT <offset> <count>] [COUNT]
  • RETURN: Cette clause identifie les champs d'une clé qui sont renvoyés. La clause AS facultative de chaque champ remplace le nom du champ dans le résultat. Seuls les champs déclarés pour cet index peuvent être spécifiés.

  • LIMIT: <offset><count>: Cette clause fournit une fonctionnalité de pagination dans la mesure où seules les clés correspondant aux valeurs de décalage et de comptage sont renvoyées. Si cette clause est omise, la valeur par défaut est « LIMIT 0 10 », c'est-à-dire que seul un maximum de 10 clés seront renvoyées.

  • PARAMS: deux fois le nombre de paires clé-valeur. Les paires clé/valeur de paramètre peuvent être référencées à partir de l'expression de requête. Pour plus d'informations, voir Expression de requête de recherche vectorielle.

  • COUNT: Cette clause supprime le renvoi du contenu des clés, seul le nombre de clés est renvoyé. Il s'agit d'un alias pour « LIMIT 0 0 ».

Retour

Renvoie un tableau ou une réponse d'erreur.

  • Si l'opération aboutit, elle renvoie un tableau. Le premier élément est le nombre total de clés correspondant à la requête. Les autres éléments sont des paires de nom de clé et de liste de champs. La liste de champs est un autre tableau comprenant des paires de nom de champ et de valeurs.

  • Si l'index est en cours de remplissage, la commande renvoie immédiatement une réponse d'erreur.

  • Si le délai est dépassé, la commande renvoie une réponse d'erreur.

Exemple : effectuez des recherches

Note

L'exemple suivant utilise des arguments natifs de valkey-cli, tels que le déguillement et le déséchappement des données, avant de les envoyer à Valkey ou Redis. OSS Pour utiliser d'autres clients utilisant d'autres langages de programmation (Python, Ruby, C#, etc.), suivez les règles de gestion de ces environnements pour traiter les chaînes et les données binaires. Pour plus d'informations sur les clients pris en charge, voir Outils sur lesquels s'appuyer AWS

Une recherche par hachage

FT.SEARCH hash_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 2 2) "hash:0" 3) 1) "__VEC_score" 2) "0" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x00\x00" 4) "hash:1" 5) 1) "__VEC_score" 2) "1" 3) "vec" 4) "\x00\x00\x00\x00\x00\x00\x80\xbf"

Cela produit deux résultats, triés en fonction de leur score, qui est la distance par rapport au vecteur de requête (entrée sous forme hexadécimale).

JSONrecherches

FT.SEARCH json_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 2 2) "json:2" 3) 1) "__VEC_score" 2) "11.11" 3) "$" 4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]" 4) "json:0" 5) 1) "__VEC_score" 2) "91" 3) "$" 4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]"

Cela produit les deux résultats les plus proches, triés en fonction de leur score, et notez que les valeurs JSON vectorielles sont converties en valeurs flottantes et que le vecteur de requête est toujours des données vectorielles. Notez également que le KNN paramètre étant 2, il n'y a que deux résultats. Une valeur plus élevée renverra plus de résultats :

FT.SEARCH json_idx1 "*=>[KNN 100 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2 1) (integer) 3 2) "json:2" 3) 1) "__VEC_score" 2) "11.11" 3) "$" 4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]" 4) "json:0" 5) 1) "__VEC_score" 2) "91" 3) "$" 4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]" 6) "json:1" 7) 1) "__VEC_score" 2) "9100" 3) "$" 4) "[{\"vec\":[10.0, 20.0, 30.0, 40.0, 50.0, 60.0]}]"