FT. SEARCH - Amazon MemoryDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

FT. SEARCH

Utilizza l'espressione di query fornita per individuare le chiavi all'interno di un indice. Una volta individuati, è possibile restituire il conteggio e/o il contenuto dei campi indicizzati all'interno di tali chiavi. Per ulteriori informazioni, vedere Espressione di interrogazione di ricerca vettoriale.

Per creare dati da utilizzare in questi esempi, consulta il FT. CREATEcomando.

Sintassi

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: Questa clausola identifica quali campi di una chiave vengono restituiti. La clausola AS opzionale su ogni campo sostituisce il nome del campo nel risultato. È possibile specificare solo i campi che sono stati dichiarati per questo indice.

  • LIMIT: <offset><count>: Questa clausola fornisce la funzionalità di impaginazione in quanto vengono restituite solo le chiavi che soddisfano i valori di offset e count. Se questa clausola viene omessa, il valore predefinito è "LIMIT0 10", ovvero verranno restituite solo un massimo di 10 chiavi.

  • PARAMS: due volte il numero di coppie chiave-valore. È possibile fare riferimento alle coppie chiave/valore del parametro dall'interno dell'espressione di query. Per ulteriori informazioni, vedete Espressione di interrogazione di ricerca vettoriale.

  • COUNT: Questa clausola elimina la restituzione del contenuto delle chiavi, viene restituito solo il numero di chiavi. Questo è un alias per "0 0". LIMIT

Valori restituiti

Restituisce una matrice o una risposta di errore.

  • Se l'operazione viene completata correttamente, restituisce un array. Il primo elemento è il numero totale di chiavi corrispondenti alla query. Gli elementi rimanenti sono coppie di nomi di chiavi ed elenchi di campi. L'elenco dei campi è un altro array che comprende coppie di nomi di campo e valori.

  • Se l'indice è in corso di riempimento, il comando restituisce immediatamente una risposta di errore.

  • Se viene raggiunto il timeout, il comando restituisce una risposta di errore.

Esempio: esegui alcune ricerche

Nota

L'esempio seguente utilizza argomenti nativi di valkey-cli, come la dequotazione e la cancellazione dei dati, prima di inviarli a Valkey o Redis. OSS Per utilizzare altri client in linguaggi di programmazione (Python, Ruby, C#, ecc.), segui le regole di gestione di tali ambienti per la gestione di stringhe e dati binari. Per ulteriori informazioni sui client supportati, consulta Strumenti su cui costruire AWS

Una ricerca hash

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"

Ciò produce due risultati, ordinati in base al punteggio, che è la distanza dal vettore di query (immessa come esadecimale).

JSONricerche

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]}]"

Ciò produce i due risultati più vicini, ordinati in base al punteggio, e nota che i valori JSON vettoriali vengono convertiti in float e il vettore di query è ancora costituito da dati vettoriali. Nota anche che, poiché il KNN parametro è 2, ci sono solo due risultati. Un valore maggiore restituirà più risultati:

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]}]"