FT.SEARCH

FT.SEARCH recherche l'index à l'aide de la requête fournie et renvoie les valeurs spécifiées.

Pour en savoir plus sur la syntaxe des requêtes, consultez la section Syntaxe des requêtes.

Syntaxe

FT.SEARCH index query
  [NOCONTENT]
  [TIMEOUT timeout]
  [PARAMS nargs name value [ name value ...]]
  [LIMIT offset num]
  DIALECT 2
  • index (obligatoire): index que vous souhaitez interroger.
  • query (obligatoire): il s'agit de votre requête. Pour en savoir plus sur la syntaxe des requêtes, consultez la section Syntaxe des requêtes.
  • NOCONTENT (facultatif): renvoie uniquement les ID des documents et exclut le contenu.
  • TIMEOUT (facultatif): permet de définir une valeur pour le délai avant expiration de la commande de recherche.
  • PARAMS (facultatif): nombre de paires clé-valeur multiplié par deux.
  • [LIMIT offset num] (facultatif): permet de choisir une pagination avec un décalage et un nombre. Si vous n'utilisez pas ce paramètre, la valeur par défaut est LIMIT 0 10, qui renvoie 10 clés au maximum.
  • DIALECT 2 (facultatif): spécifie le dialecte. Le seul dialecte pris en charge est le dialecte 2.

Retour de commande

  • Cette commande renvoie un tableau ou un message d'erreur. Les éléments du tableau renvoyé représentent les résultats correspondant le mieux à la requête. Chaque élément du tableau comporte les éléments suivants:

  • La clé de hachage de l'entrée

  • Tableau des éléments suivants:

    • Valeur clé: [$score_as ] score_value
    • Valeur de la distance
    • Nom de l'attribut
    • Valeur vectorielle

    Si NOCONTENT est utilisé, les éléments du tableau ne sont composés que des ID de document.

Exemple

Supposons que vous ayez créé un index HNSW sur le champ de hachage Vec. Supposons que vous ayez déjà ajouté des entrées de hachage qui contiennent les noms de champs suivants et que vous souhaitez trouver le vecteur correspondant le mieux à un vecteur d'entrée donné.

Hachage du nom des champs:

  • Vec : la valeur du champ contient le vecteur réel.
  • some_hash_key : certaines métadonnées vectorielles associées.

Pour effectuer une recherche, utilisez la commande FT.SEARCH:

FT.SEARCH idx "*=>[KNN 3 @vec $BLOB EF_RUNTIME 40 AS score]" PARAMS 2 BLOB
"\x12\xa9\xf5\x6c" DIALECT 2

Renvoyez le tableau:

[3, b'key_192', [b'__embedding_score', b'0.061539709568', b'embedding', b'd\xdeA?\xb7\\xbb>!\xb3\xd8>0\x94n?\xbd\xbco=WX\xe4>kN\x9e>\x1aV0>Z\x92*?\rD\x04>', b'some_hash_key', b'some_hash_key_value_192'], b'key_209', [b'__embedding_score', b'0.0803312063217', b'embedding', b's\xe1W?\xa4\x1d\xad>\xb8\x99Q?\xa9u ?6\xc8\xb2>=j5?!\x13\x96>~\x13\xb9=\xebcX?\x92\x86\xb8>', b'some_hash_key', b'some_hash_key_value_209'], b'key_821', [b'__embedding_score', b'0.0615693926811', b'embedding', b')\x1e\x03?\xa6\x10\xe0>^-\xa1\x00\x87>\x18u\xa2=\x06\xa2;>,\xeb=?\x0e%\xa4>', b'some_hash_key', b'some_hash_key_value_821']]